Uma placa de bronze no pedestal da Estátua da Liberdade exibe o poema " O Novo Colosso ", de Emma Lazarus, parte do qual se lê:
Me dê seu cansado, seu pobre,
Suas massas amontoadas ansiando por respirar livremente,
O lixo miserável de sua costa fervilhante.
Mande-os, sem-teto, tempestades para mim,
levanto minha lâmpada ao lado da porta dourada!
Para simplificar esta seção do poema para esse desafio, colocaremos tudo em maiúsculas e substituiremos as novas linhas por barras ( /
), mantendo vírgulas e outras pontuações como são:
GIVE ME YOUR TIRED, YOUR POOR,/YOUR HUDDLED MASSES YEARNING TO BREATHE FREE,/THE WRETCHED REFUSE OF YOUR TEEMING SHORE./SEND THESE, THE HOMELESS, TEMPEST-TOST TO ME,/I LIFT MY LAMP BESIDE THE GOLDEN DOOR!
Vamos chamar essa string S. Ele tem um hash md5 8c66bbb9684f591c34751661ce9b5cea
. Opcionalmente, você pode assumir que ele possui uma nova linha à direita, nesse caso o hash md5 é 0928ff6581bc207d0938b193321f16e6
.
Escreva um programa ou função que utilize uma única string. Quando a sequência é S, com saída em ordem , uma por linha, as seis frases que descrevem o tipo de pessoa que o poema representa Lady Liberty pedindo:
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(Essa sequência precisa, opcionalmente seguida por uma única nova linha à direita, deve ser sua saída para a entrada S.)
Para pelo menos uma sequência de entrada que não seja S, sua saída deve ser qualquer sequência que não seja as seis linhas acima. Isso pode ser tão simples quanto produzir apenas TIRED
se a entrada for apenas GIVE ME YOUR TIRED
. Esta regra é para impedir a codificação pura. Caso contrário, quando a sequência de entrada não for S, seu código poderá fazer qualquer coisa.
Este é essencialmente um desafio de saída constante, no qual você recebe uma entrada relativamente próxima da saída. Obviamente, você poderia ignorar a entrada e codificar a saída, mas talvez seja melhor, por exemplo, retirar as substrings da entrada necessária para a saída.
Para referência, aqui estão os índices e comprimentos baseados em zero das seis linhas de saída em S:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
O código mais curto em bytes vence.