Une plaque de bronze dans le piédestal de la Statue de la Liberté montre le poème " Le nouveau colosse " d'Emma Lazarus, dont une partie se lit comme suit:
Donnez-moi vos fatigués, vos pauvres,
vos masses entassées qui aspirent à respirer librement,
les misérables ordures de votre rivage grouillant.
Envoyez-moi ces sans-abri, tempête-tost,
je lève ma lampe à côté de la porte d'or!
Pour simplifier cette section du poème pour ce défi, nous allons tout mettre en majuscules et remplacer les sauts de ligne par des barres obliques ( /
), en conservant les virgules et autres signes de ponctuation tels quels:
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!
Nous appellerons cette chaîne S. Elle a un hachage md5 8c66bbb9684f591c34751661ce9b5cea
. Vous pouvez éventuellement supposer qu'il a une nouvelle ligne de fin, auquel cas le hachage md5 l'est 0928ff6581bc207d0938b193321f16e6
.
Écrivez un programme ou une fonction qui accepte une seule chaîne. Lorsque la chaîne est S, sortie dans l'ordre , une par ligne, les six phrases qui décrivent le type de personnes que le poème représente Lady Liberty demandant:
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(Cette chaîne précise, éventuellement suivie d'une seule nouvelle ligne de fin, doit être votre sortie pour l'entrée S.)
Pour au moins une chaîne d'entrée qui n'est pas S, votre sortie doit être une chaîne autre que les six lignes ci-dessus. Cela pourrait être aussi simple que de sortir uniquement TIRED
si l'entrée est uniquement GIVE ME YOUR TIRED
. Cette règle vise à empêcher le codage en dur pur. Sinon, lorsque la chaîne d'entrée n'est pas S, votre code peut faire quoi que ce soit.
Il s'agit essentiellement d'un défi à sortie constante où vous obtenez une entrée qui est relativement proche de la sortie. Vous pouvez bien sûr ignorer la plupart du temps l'entrée et coder en dur la sortie, mais il peut être préférable, par exemple, de supprimer les sous-chaînes de l'entrée nécessaires à la sortie.
Pour référence, voici les indices de base zéro et les longueurs des six lignes de sortie dans S:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
Le code le plus court en octets gagne.
la source
Réponses:
Gelée , 19 octets
Essayez-le en ligne! ou essayez-le avec un autre texte .
Comment?
Indexe dans la liste de toutes les tranches contiguës non vides de la chaîne d'entrée et rejoint les sauts de ligne.
Code précédent, 22 octets:
Partitionne la chaîne d'entrée, prend chaque deuxième élément et se joint aux sauts de ligne.
“ÇŒȷœ%LRw⁹ƊƓɠ‘
est une liste d'index de page de code,Ṭ
crée une liste de zéros avec des uns à ces index,œṗ
partitionne l'entrée aux index véridiques de cette liste,Ḋ
supprime le premier élément,m2
prend chaque deuxième élément et seY
joint aux sauts de ligne.la source
JavaScript (ES6),
12869 octetsPeut générer des lignes vides ou des ordures lorsque l'entrée est différente de
S
.la source
Bash ,
766560 octetsEssayez-le en ligne!
la source
Mathematica , 71
la source
PowerShell , 72 octets
Essayez-le en ligne!
Explication
Ceci est une solution regex assez merdique.
Fractionner la chaîne en un tableau sur
/
ou.
ou,
puis remplacer les parties de chaque chaîne qui correspondent au premier modèle, ce qui donne un tableau de-replace
d chaînes, puis utilisez l'-match
opérateur pour renvoyer un tableau des éléments qui correspondent au deuxième modèle (qui se débarrasse des lignes vides et 2 lignes qui n'ont pas été filtrées auparavant).la source
Mathematica, 86 octets
Fonction sans nom prenant une liste de caractères en entrée et renvoyant une chaîne. Extrait simplement les sous-chaînes pertinentes de l'entrée et concatène avec les retours à la ligne.
la source
String
mais une liste deCharacter
s.TI-Basic, 58 octets
Très simple.
Disp
est commeprintln
, il y a donc de nouvelles lignes entre les deux.la source
Rétine ,
3832 octetsCela peut probablement être amélioré, mais c'est un travail pour les regex!
Essayez-le en ligne!
la source