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.
fonte
Respostas:
Geléia , 19 bytes
Experimente online! ou tente com outro texto .
Quão?
Indexa na lista de todas as fatias contíguas não vazias da sequência de entrada e se junta aos feeds de linha.
Código anterior, 22 bytes:
Particiona a sequência de entrada, pega cada segundo elemento e se une aos feeds de linha.
“ÇŒȷœ%LRw⁹ƊƓɠ‘
é uma lista de índices da página de códigos,Ṭ
faz uma lista de zeros com os que estão nesses índices,œṗ
particiona a entrada nos índices de verdade dessa lista,Ḋ
remove o primeiro elemento,m2
pega todos os segundos eY
se junta aos feeds de linha.fonte
JavaScript (ES6),
12869 bytesPode gerar linhas vazias ou algum lixo quando a entrada for diferente de
S
.fonte
Bash ,
766560 bytesExperimente online!
fonte
Mathematica , 71
fonte
PowerShell , 72 bytes
Experimente online!
Explicação
Esta é uma solução regex bastante ruim.
Dividindo a string em uma matriz em
/
ou.
ou,
e, em seguida, substituindo partes de cada string que correspondem ao primeiro padrão, o que fornece uma matriz de-replace
d strings, use o-match
operador para retornar uma matriz dos elementos que correspondem ao segundo padrão (que se livrará das linhas em branco e 2 linhas que não foram filtradas antes).fonte
Mathematica, 86 bytes
Função sem nome, recebendo uma lista de caracteres como entrada e retornando uma string. Apenas extrai as substrings relevantes da entrada e concatena com novas linhas.
fonte
String
apenas uma lista deCharacter
s.TI-Basic, 58 bytes
Muito simples.
Disp
é comoprintln
, então há novas linhas no meio.fonte
Retina ,
3832 bytesProvavelmente pode ser melhorado, mas este é um trabalho para regexes!
Experimente online!
fonte