自由女神像基座上的一块青铜牌上陈列着艾玛·拉扎鲁斯(Emma Lazarus)的诗“ 新巨像 ”,其中一部分写着:
给我你的疲倦,你的贫穷,
你拥挤的群众,向往自由的呼吸,
你茂密的岸边那可怜的垃圾。
把这些无家可归的暴风雨寄给我,
我把灯抬到金门旁边!
为了简化针对这一挑战的诗的这一部分,我们将其全部大写,并用斜杠(/
)替换换行符,并保持逗号和其他标点符号不变:
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!
我们将此字符串称为S。它具有md5 hash 8c66bbb9684f591c34751661ce9b5cea
。您可以选择假定它具有尾随换行符,在这种情况下,md5哈希为0928ff6581bc207d0938b193321f16e6
。
编写一个包含单个字符串的程序或函数。当字符串为S时,按顺序输出,每行一个,描述这首诗所描绘的人的类型的六个短语描述了Lady Liberty要求:
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(此精确的字符串,可以选择后跟一个尾随的换行符,必须是输入S的输出。)
对于至少一个非 S的输入字符串,您的输出应该是上述六行以外的任何字符串。仅TIRED
当输入为only时,这和输出一样简单GIVE ME YOUR TIRED
。此规则是为了防止纯硬编码。否则,当输入字符串不是S时,您的代码可能会执行任何操作。
从本质上讲,这是一个恒定的输出挑战,您将获得相对接近输出的输入。当然,您可以大体上忽略输入并对输出进行硬编码,但是,最好剥离掉输出所需的输入子字符串。
作为参考,以下是S中六条输出线的从零开始的索引和长度:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
以字节为单位的最短代码获胜。