Considere una cadena de longitud N, como Peanut Butter
con 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 Butter
solo 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,
0
está 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