Votre ami n'est pas trop bon avec les ordinateurs, donc comme une plaisanterie pratique, quelqu'un a brouillé les lettres (az) sur son clavier. Quand il s'est assis et a essayé de taper son nom en regardant le clavier, il s'est rendu compte que les lettres étaient brouillées et a demandé votre aide.
Vous êtes intelligent, vous savez donc que s'il tape son nom puis retape à plusieurs reprises ce qui s'affiche à l'écran au lieu de son nom, il réussira à entrer son nom. Vous êtes également gentil et réorganisez les touches, mais vous voulez savoir combien de tours faudrait-il pour réussir.
Votre tâche consiste à écrire un programme ou une fonction qui, compte tenu du brassage des lettres et du nom de l'ami, calcule le nombre de tours.
Détails d'entrée:
- Deux chaînes sont données en entrée dans une structure adaptée à votre langue.
- La première chaîne est la liste des nouvelles lettres minuscules dans l'ordre alphabétique des anciennes. (Le premier caractère est celui qui est à la position de
a
, le dernier est à la position dez
.) Certains changements se produiront toujours dans la chaîne. - La deuxième chaîne est le nom. Il peut contenir n'importe quel caractère ascii imprimable, mais seuls les caractères alphabétiques supérieur et minuscule seront mélangés le cas échéant. Le nom lui-même pourrait ne pas être mélangé à al.
Détails de sortie:
- La sortie est un entier unique, le nombre de tours requis au minimum. La nouvelle ligne est facultative.
Exemples:
Contribution:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
(positions d, e, f modifiées)
Sortie:
3
(Les noms affichés sont: Mr. John Fod
=> Mr. John Eof
=>Mr. John Doe
)
Entrée:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
(le chiffre ROT13 )
Sortie:
2
(Tout nom d'entrée contenant des lettres prendra2
tours pour produire le nom d'origine.)
Contribution:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
Production:
140
Il s'agit de code-golf, donc l'entrée la plus courte l'emporte.
EOF
est totalement incroyable!
aebcdjfghiqklmnopzrstuvwxy
(sortie 1260 pourMr John Doe
). C'est le maximum possible - il se compose de cycles d'ordre 4, 5, 7, 9 (et un inchangéa
), et chaque nom qui contient au moins une lettre de chaque cycle donnera 1260. Et je suppose que l'alphabet lui-même comme entrée ou l'utilisation d'un nom non affecté sont également des cas marginaux importants.