Considere una cadena de longitud N, como Peanut Buttercon N = 13. Observe que hay N-1 pares de caracteres vecinos en la cadena. Para Peanut Butter, el primero de los 12 pares es Pe, el segundo es ea, el último es er.
Cuando los pares son en su mayoría caracteres diferentes, la cadena tiene una calidad gruesa, por ejemplo chUnky.
Cuando estos pares son en su mayoría del mismo carácter, la cadena tiene una calidad suave, por ejemplo sssmmsss.
Defina la fragmentación de una cadena para que sea la relación entre el número de pares con dos caracteres diferentes y el número total de pares (N-1).
Defina la suavidad de una cadena como la relación entre el número de pares con dos caracteres idénticos y el número total de pares (N-1).
Por ejemplo, Peanut Buttersolo tiene un par con caracteres idénticos ( tt), por lo que su suavidad es 1/12 o 0.0833 y su fragmentación es 11/12 o 0.9167.
Las cadenas vacías y las cadenas con un solo carácter se definen como 100% suaves y 0% gruesas.
Reto
Escriba un programa que tome una cadena de longitud arbitraria y genere su relación de fragmentación o suavidad como un valor de coma flotante.
- Tome la entrada a través de stdin o la línea de comando, o puede escribir una función que tome una cadena.
- Puede asumir que la cadena de entrada solo contiene caracteres ASCII imprimibles (y, por lo tanto, es de una sola línea).
- Imprima el flotador en stdout a 4 o más decimales, o puede elegir devolverlo si escribió una función. No se requieren lugares decimales que no transmitan información, por ejemplo,
0está bien en lugar de0.0000. - Elija el grueso o la suavidad que prefiera. Solo asegúrese de decir cuál es el resultado de su programa.
El código más corto en bytes gana.
Ejemplos
Peanut Butter→ chunkiness: 0.91666666666, Suavidad: 0.08333333333
chUnky→ chunkiness: 1.0, Suavidad: 0.0
sssmmsss→ chunkiness: 0.28571428571, Suavidad: 0.71428571428
999→ chunkiness: 0.0, Suavidad: 1.0
AA→ chunkiness: 0.0, Suavidad: 1.0
Aa→ chunkiness: 1.0, Suavidad: 0.0
!→ chunkiness: 0.0, Suavidad: 1.0
[cadena vacía] → chunkiness: 0.0, Suavidad:1.0