Tu amigo no es muy bueno con las computadoras, así que, como una broma práctica, alguien revolvió las letras (az) en su teclado. Cuando se sentó e intentó escribir su nombre mirando el teclado, se dio cuenta de que las letras estaban codificadas y le pidió ayuda.
Eres inteligente, así que sabes que si escribe su nombre y luego vuelve a escribir repetidamente lo que aparece en la pantalla en lugar de su nombre, eventualmente ingresará su nombre. También es amable y reorganiza las teclas, pero desea saber cuántos giros se necesitarían para tener éxito.
Su tarea es escribir un programa o función que, dada la combinación de las letras y el nombre del amigo, calcule el número de turnos.
Detalles de entrada:
- Se proporcionan dos cadenas como entrada en una estructura conveniente para su idioma.
- La primera cadena es la lista de las nuevas letras minúsculas en orden alfabético de las antiguas. (El primer carácter es el que está en la posición de
a
, el último está en la posición dez
). Siempre se producirá algún cambio en la cadena. - La segunda cadena es el nombre. Podría contener cualquier carácter ascii imprimible, pero solo los caracteres alfabéticos en mayúscula y minúscula se mezclarán si los hay. El nombre en sí podría no ser barajado en todos
Detalles de salida:
- La salida es un número entero, el número de vueltas mínimamente requerido. Newline es opcional.
Ejemplos:
Entrada:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
(d, e, f posiciones cambiadas)
Salida:
3
(Los nombres que se muestran son: Mr. John Fod
=> Mr. John Eof
=> Mr. John Doe
)
Entrada:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
(el cifrado ROT13 )
Salida:
2
(Cualquier nombre de entrada que contenga letras tomará 2
rondas para producir el nombre original).
Entrada:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
Salida:
140
Este es el código de golf, por lo que gana la entrada más corta.
EOF
es totalmente increíble.
aebcdjfghiqklmnopzrstuvwxy
(salida 1260 paraMr John Doe
). Este es el máximo posible: consiste en ciclos de orden 4, 5, 7, 9 (y sin cambiosa
), y cada nombre que contenga al menos una letra de cada ciclo producirá 1260. Y supongo que tomar el alfabeto como entrada o el uso de un nombre no afectado también son casos importantes.