Eine Bronzetafel auf dem Sockel der Freiheitsstatue zeigt das Gedicht " Der neue Koloss " von Emma Lazarus. Ein Teil davon lautet:
Gib mir deine müden, deine armen,
deine gedrängten Massen, die sich danach sehnen, frei zu atmen,
den elenden Müll von deinem wimmelnden Ufer.
Sende diese Obdachlosen zu mir,
ich hebe meine Lampe neben die goldene Tür!
Um diesen Abschnitt des Gedichts für diese Herausforderung zu vereinfachen, werden wir alles in Großbuchstaben schreiben und die Zeilenumbrüche durch Schrägstriche ( /
) ersetzen , wobei Kommas und andere Satzzeichen wie folgt beibehalten werden :
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!
Wir werden diese Zeichenkette S nennen. Sie hat md5-Hash 8c66bbb9684f591c34751661ce9b5cea
. Optional können Sie davon ausgehen, dass es sich um einen nachgestellten Zeilenumbruch handelt. In diesem Fall lautet der MD5-Hash 0928ff6581bc207d0938b193321f16e6
.
Schreiben Sie ein Programm oder eine Funktion, die eine einzelne Zeichenfolge enthält. Wenn die Zeichenfolge S ist , werden die sechs Sätze, die die Art der Personen beschreiben, nach denen Lady Liberty in dem Gedicht gefragt wird, in der Reihenfolge einer pro Zeile ausgegeben :
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(Diese genaue Zeichenfolge, optional gefolgt von einer einzelnen nachgestellten Zeile, muss Ihre Ausgabe für Eingabe S sein.)
Für mindestens eine Eingabezeichenfolge, die nicht S ist, sollte Ihre Ausgabe eine andere Zeichenfolge als die sechs obigen Zeilen sein. Dies könnte so einfach sein wie nur auszugeben, TIRED
wenn die Eingabe nur ist GIVE ME YOUR TIRED
. Diese Regel soll eine reine Hardcodierung verhindern. Andernfalls kann Ihr Code alles tun, wenn die Eingabezeichenfolge nicht S ist.
Dies ist im Wesentlichen eine Herausforderung mit konstanter Ausgabe, bei der Sie eine Eingabe erhalten, die der Ausgabe relativ nahe kommt. Sie können natürlich die Eingabe meistens ignorieren und die Ausgabe fest codieren, aber es ist möglicherweise besser, beispielsweise die für die Ausgabe erforderlichen Teilzeichenfolgen der Eingabe zu entfernen.
Als Referenz sind hier die auf Null basierenden Indizes und Längen der sechs Ausgabezeilen in S:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
Der kürzeste Code in Bytes gewinnt.