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.