Eingang
Eine nicht leere codierte Zeichenfolge, die aus druckbaren ASCII-Zeichen (im Bereich von 32 bis 126) besteht und durch die einige fehlende Buchstaben ersetzt wurden _
.
Ausgabe
Eine dekodierte Zeichenfolge gleicher Länge mit allen Kleinbuchstaben, einschließlich der fehlenden.
Wie?
Edit: Wie von @Deusovi in den Kommentaren erwähnt, ist dies eine Variante von Bacons Chiffre .
- Sammeln Sie alle Buchstaben in der ursprünglichen Zeichenfolge und gruppieren Sie sie nach 5. Zusätzliche Buchstaben, die nicht in eine vollständige Gruppe von 5 passen, werden ignoriert.
- Konvertieren Sie jede Gruppe in Binär: Kleinbuchstaben = 0 , Großbuchstaben = 1 . Dies führt zu einer Liste von ganzen Zahlen.
- Verwenden Sie jeden Wert N in dieser Liste, um jeden
_
in der ursprünglichen Zeichenfolge durch den N- ten Buchstaben des Alphabets (0-indiziert) in der angegebenen Reihenfolge zu ersetzen .
Beispiel: prOGraMMIng PuZZleS & cOde ____
prOGr --> 00110 --> 6 --> 7th letter = 'g'
aMMIn --> 01110 --> 14 --> 15th letter = 'o'
gPuZZ --> 01011 --> 11 --> 12th letter = 'l'
leScO --> 00101 --> 5 --> 6th letter = 'f'
Indem Sie die fehlenden Buchstaben ersetzen und alles wieder in Kleinbuchstaben umwandeln, wird die ursprüngliche Zeichenfolge enthüllt:
programming puzzles & code golf
Dies ist die erwartete Ausgabe.
Erläuterungen und Regeln
- Die fehlenden Buchstaben werden garantiert am Ende der Zeichenfolge angezeigt. Formaler: Nach dem ersten Buchstaben
_
in der Eingabezeichenfolge wird es nie einen Buchstaben geben . Es können jedoch auch andere druckbare ASCII-Zeichen wie Leerzeichen und Interpunktionszeichen vorhanden sein. - Die Eingabe enthält garantiert keinen unnötigen Großbuchstaben: Alle Großbuchstaben sind Bits, die auf 1 gesetzt sind und zum Entschlüsseln der fehlenden Buchstaben erforderlich sind. Alles andere ist in Kleinbuchstaben.
- Die Eingabezeichenfolge ist garantiert gültig. Insbesondere:
- Es enthält immer genug vollständige Gruppen mit 5 Buchstaben, um die Unterstriche zu dekodieren.
- Die binär codierten Ganzzahlen liegen garantiert im Bereich [0-25] .
- Möglicherweise enthält
_
die Eingabezeichenfolge überhaupt keine. In diesem Fall müssen Sie nur die Eingabe zurückgeben. - Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
Testfälle
Input : hello!
Output: hello!
Input : helLO, worl_!
Output: hello, world!
Input : i aM yoUr faTh__.
Output: i am your father.
Input : prOGraMMIng PuZZleS & cOde ____
Output: programming puzzles & code golf
Input : Can YOu gUesS tHE ENd oF This ____?
Output: can you guess the end of this text?
Input : THe qUICk brown FOx JUMps oVEr the la__ ___.
Output: the quick brown fox jumps over the lazy dog.
Input : RoadS? wHERe we're goinG WE doN't need _____.
Output: roads? where we're going we don't need roads.
Input : thE greatESt Trick thE DeVIl EVer PUllEd wAs CONvInciNg tHe WorLD h_ ____'_ _____.
Output: the greatest trick the devil ever pulled was convincing the world he didn't exist.
Einige zusätzliche Testfälle:
Input : BInar_
Output: binary
Input : 12 MonKey_
Output: 12 monkeys
Input : hyPerbolIZ__
Output: hyperbolized
Input : {[One Last Test ca__]}
Output: {[one last test case]}
_
die Eingabezeichenfolge keine enthält, ein Sonderfall.
The input is guaranteed not to contain any useless capital letter
, falls es keinen Unterstrich gibt, wird auch kein Großbuchstabe verwendet.
[32-126]
. Ich habe einen weiteren Testfall hinzugefügt.