Бронзовая доска на пьедестале статуи Свободы показывает стихотворение « The New Colossus » Эммы Лазарус, часть которой гласит:
Дай мне свою усталость, свою бедность,
Твои толпящиеся массы, жаждущие свободного дыхания,
Несчастный мусор твоего кишащего берега.
Пошлите это, бездомный, буря ко мне,
я поднимаю лампу рядом с золотой дверью!
Чтобы упростить этот раздел стихотворения для этой задачи, мы сделаем все заглавными и заменим символы новой строки на косую черту ( /
), сохраняя запятые и другие знаки пунктуации следующим образом:
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 8c66bbb9684f591c34751661ce9b5cea
. При желании вы можете предположить, что у него есть завершающий символ новой строки, и в этом случае хэш md5 равен 0928ff6581bc207d0938b193321f16e6
.
Напишите программу или функцию, которая принимает одну строку. Когда строка S, выводите по порядку , по одной на строку, шесть фраз, которые описывают тип людей, в стихотворении изображена Леди Либерти с просьбой:
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(Эта точная строка, за которой может следовать одна завершающая новая строка, должна быть вашим выходом для ввода S.)
По крайней мере , один входной строки, которая не S, результат должен быть любая строка, кроме шести строк выше. Это может быть так же просто, как вывод, только TIRED
если ввод только GIVE ME YOUR TIRED
. Это правило состоит в том, чтобы не допустить чистого жесткого кодирования. В противном случае, когда входная строка не S, ваш код может делать что угодно.
По сути, это задача с постоянным выходом, когда вам дают вход, который относительно близок к выходу. Конечно, вы можете в основном игнорировать ввод и жестко закодировать вывод, но, возможно, лучше, скажем, вырезать подстроки ввода, необходимые для вывода.
Для справки, вот нулевые индексы и длины шести выходных строк в S:
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
Самый короткий код в байтах побеждает.
источник
Ответы:
Желе , 19 байт
Попробуйте онлайн! или попробуйте другой текст .
Как?
Индексирует в список всех непустых смежных фрагментов входной строки и объединяет с переводами строки.
Предыдущий код, 22 байта:
Разбивает входную строку, берет каждый второй элемент и объединяет переводы строк.
“ÇŒȷœ%LRw⁹ƊƓɠ‘
представляет собой список индексов кодовых страниц,Ṭ
создает список нулей с единицами в этих индексах,œṗ
разбивает входные данные на истинные индексы этого списка,Ḋ
удаляет первый элемент,m2
берет каждый второй элемент иY
объединяет с переводами строк.источник
JavaScript (ES6),
12869 байтМожет выводить пустые строки или мусор, когда ввод отличается от
S
.источник
Баш ,
766560 байтПопробуйте онлайн!
источник
Математика , 71
источник
PowerShell , 72 байта
Попробуйте онлайн!
объяснение
Это довольно дурацкое решение для регулярных выражений.
Разделение строки в массив на
/
или.
или,
и затем замена частей каждой строки, которые соответствуют первому шаблону, который дает массив-replace
d строк, затем используйте-match
оператор, чтобы возвратить массив элементов, которые соответствуют второму шаблону (который избавляется из пустых строк и 2 строк, которые не были отфильтрованы ранее).источник
Mathematica, 86 байт
Безымянная функция, принимающая список символов в качестве входных данных и возвращающая строку. Просто извлекает соответствующие подстроки ввода и объединяет их с символами новой строки.
источник
String
является спискомCharacter
s.TI-Basic, 58 байт
Очень просто.
Disp
это какprintln
, так что между ними есть новые строки.источник
Сетчатка ,
3832 байтаВозможно, это можно улучшить, но это работа для регулярных выражений!
Попробуйте онлайн!
источник