Ingresso
Una stringa codificata non vuota costituita da caratteri ASCII stampabili (nell'intervallo 32-126), in cui sono state sostituite alcune lettere mancanti _
.
Produzione
Una stringa decodificata della stessa lunghezza con tutte le lettere in minuscolo, comprese quelle mancanti.
Come?
Modifica: Come menzionato da @Deusovi nei commenti, questa è una variante del codice di Bacon .
- Raccogli tutte le lettere nella stringa originale e raggruppale per 5. Le lettere aggiuntive che non rientrano in un gruppo completo di 5 vengono ignorate.
- Converti ogni gruppo in binario: minuscolo = 0 , maiuscolo = 1 . Questo porta a un elenco di numeri interi.
- Utilizzare ciascun valore N in questo elenco per sostituire ciascuno
_
nella stringa originale con la lettera N dell'alfabeto (0-indicizzata), in ordine di apparizione.
Esempio: 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'
Sostituendo le lettere mancanti e convertendo tutto in minuscolo, viene svelata la stringa originale:
programming puzzles & code golf
Questo è l'output previsto.
Chiarimenti e regole
- Le lettere mancanti sono garantite per apparire alla fine della stringa. Più formalmente: non ci sarà mai nessuna lettera dopo la prima
_
nella stringa di input. Tuttavia, potrebbero esserci altri caratteri ASCII stampabili come spazi e segni di punteggiatura. - È garantito che l'input non contenga lettere maiuscole inutili : tutte le lettere maiuscole sono bit impostati su 1 che sono necessari per decodificare le lettere mancanti. Tutto il resto è in minuscolo.
- La stringa di input è garantita per essere valida. Particolarmente:
- Conterrà sempre abbastanza gruppi completi di 5 lettere per decodificare i caratteri di sottolineatura.
- Gli interi con codifica binaria sono garantiti nell'intervallo [0-25] .
- Potrebbe non esserci
_
affatto nella stringa di input, nel qual caso devi solo restituire l'input. - Questo è code-golf , quindi vince la risposta più breve in byte!
Casi test
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.
Alcuni casi di prova extra:
Input : BInar_
Output: binary
Input : 12 MonKey_
Output: 12 monkeys
Input : hyPerbolIZ__
Output: hyperbolized
Input : {[One Last Test ca__]}
Output: {[one last test case]}
_
nella stringa di input è un po 'un caso speciale.
The input is guaranteed not to contain any useless capital letter
, nel caso in cui non sia presente un carattere di sottolineatura, non ci sarà nemmeno una lettera maiuscola.
[32-126]
. Ho aggiunto un altro caso di test.