Cryptic Kicker
Un metodo comune ma insicuro di crittografia del testo è quello di consentire le lettere dell'alfabeto. In altre parole, ogni lettera dell'alfabeto viene costantemente sostituita nel testo da un'altra lettera. Per garantire che la crittografia sia reversibile, non ci sono due lettere sostituite dalla stessa lettera. Il tuo compito è decrittografare diverse righe di testo codificate, supponendo che ciascuna riga utilizzi un diverso set di sostituzioni e che tutte le parole nel testo decrittografato provengano da un dizionario di parole conosciute.
Ingresso
L'input è composto da parole minuscole, in ordine alfabetico. Queste parole compongono il dizionario di parole che possono apparire nel testo decrittografato. Di seguito il dizionario sono diverse righe di input. Ogni riga è crittografata come descritto sopra.
Non ci sono più di 1.000 parole nel dizionario. Nessuna parola supera le 16 lettere. Le righe crittografate contengono solo lettere minuscole e spazi e non superano gli 80 caratteri di lunghezza.
Produzione
Decifrare ogni riga e stamparla sull'output standard. Se ci sono più soluzioni, ognuna lo farà. Se non esiste una soluzione, sostituire ogni lettera dell'alfabeto con un asterisco.
Input di esempio
and dick jane puff spot yertle
bjvg xsb hxsn xsb qymm xsb rqat xsb pnetfn
xxxx yyy zzzz www yyyy aaa bbbb ccc dddddd
Uscita campione
dick and jane and puff and spot and yertle
**** *** **** *** **** *** **** *** ******
Ecco la soluzione. Si prega di notare che non sono un cavallo che corre in gara per i byte più brevi / programmatore competitivo. Mi piacciono i puzzle!
( Fonte )