Ihr Freund ist nicht so gut mit Computern umgehen zu können, so dass jemand als Scherz die Buchstaben (az) auf seiner Tastatur verschlüsselt. Als er sich hinsetzte und versuchte, seinen Namen über die Tastatur einzugeben, bemerkte er, dass die Buchstaben verschlüsselt waren und bat um Ihre Hilfe.
Sie sind schlau und wissen, dass es ihm irgendwann gelingen wird, seinen Namen einzugeben, wenn er seinen Namen eingibt und dann wiederholt eingibt, was auf dem Bildschirm statt seines Namens erscheint. Sie sind auch nett und ordnen die Schlüssel neu an, möchten aber wissen, wie viele Runden nötig wären, um erfolgreich zu sein.
Deine Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die die Anzahl der Umdrehungen berechnet, wenn die Buchstaben gemischt werden und der Name des Freundes.
Eingabedetails:
- Zwei Zeichenfolgen werden als Eingabe in einer für Ihre Sprache geeigneten Struktur angegeben.
- Die erste Zeichenfolge ist die Liste der neuen Kleinbuchstaben in alphabetischer Reihenfolge der alten. (Das erste Zeichen befindet sich an der Position von
a
, das letzte an der Position vonz
.) In der Zeichenfolge treten immer einige Änderungen auf. - Die zweite Zeichenfolge ist der Name. Es kann jedes druckbare ASCII-Zeichen enthalten, es werden jedoch nur die Groß- und Kleinbuchstaben gemischt, sofern vorhanden. Der Name selbst könnte bei al nicht gemischt werden.
Ausgabedetails:
- Die Ausgabe ist eine einzelne Ganzzahl, deren Anzahl an Windungen minimal erforderlich ist. Newline ist optional.
Beispiele:
Eingabe:
'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'
(d, e, f Positionen geändert)
Ausgabe:
3
(Die angezeigten Namen sind: Mr. John Fod
=> Mr. John Eof
=> Mr. John Doe
)
Eingabe:
'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'
(die ROT13-Chiffre )
Ausgabe:
2
(Jeder Eingabename, der Buchstaben enthält, benötigt 2
Runden, um den ursprünglichen Namen zu erzeugen.)
Eingang:
'aebcdjfghiqklmnopzrstuvwxy' 'John Doe'
Ausgabe:
140
Dies ist Code-Golf, also gewinnt der kürzeste Eintrag.
EOF
total erstaunlich!
aebcdjfghiqklmnopzrstuvwxy
(Ausgabe 1260 fürMr John Doe
). Dies ist das maximal mögliche - es besteht aus Zyklen der Ordnung 4, 5, 7, 9 (und einem unverändertena
), und jeder Name, der mindestens einen Buchstaben aus jedem Zyklus enthält, ergibt 1260. Und ich nehme das Alphabet selbst als Eingabe oder die Verwendung eines nicht betroffenen Namens sind ebenfalls wichtige Randfälle.