Crypt kicker 2
Embora esse seja o crypt kicker 2, ele é mais simples que o crypt kicker 1.
A frase que serve como mapeamento é conhecida e fixa: "the quick brown fox jumps over the lazy dog"
Você recebe uma série de frases, deve identificar qual delas é a frase que vai ser usada como gabarito, criar um dicionário com o mapeamento entre as letras e depois aplicar a substituição nas outras, se for possível.
Fiz assim:
indice_gabarito = -1
para cada linha lida
adicione a um array
se a linha é candidata a gabarito
indice_gabarito = posicao da linha
se indice_gabarito != -1
tente decodificar o gabarito (linhas[indice_gabarito]) e se conseguir, guarde a decodificacao utilizada em um dicionario
para cada linha que sobrar
tente decodificar usando o dicionario construido anteriormente
se nao conseguir, "no solution"
senão, mostre a solução