Цель С учетом ввода текста, который не содержит символов [
или ]
, выполните следующие действия:
- Для каждого экземпляра
Amen
с хотя бы одной заглавной буквой (то есть для всех случаевAmen
исключенияamen
) выведите то же самоеAmen
(сохраните заглавными буквами). - Для каждого экземпляра
/all the people said[?: ]/i
(это регулярное выражение) также выводитсяAmen
(любой случай подойдет.)
После каждого вывода вы можете выбрать любой постоянный разделитель, например, новую строку, пробел или ничего.
Это код-гольф , поэтому выигрывает самая короткая программа в байтах.
Пример IOs
Input: I said AMEN! AMEN, PEOPLE!
Output: AMENAMEN ; any separator is fine, I choose none.
Input: amen amen amen amen
Output: ; nothing
Input: ; empty
Output: ; nothing
Input: *blah blah blah* And all the people said?
Output: Amen
Input: all the people said:
Output: Amen
Input: AMEN AMeN AmeN aMEN amen AmEn
Output: AMEN AMeN AmeN aMEN AmEn
Input: All the people said Amen! And all the people said AMEN!
Output: Amen Amen Amen AMEN
Input: LAMEN! Amen.
Output: AMEN Amen
Input: AmenAmenAmenAmenAMENamen
Output: Amen Amen Amen Amen AMEN
Input: And he was like, "Amen", then we were all like, "Amen, bruh."
Output: Amen Amen
Input: And all the aMen people said.
Output: aMen
бонус
- -20 байт , если вы можете «захватить» пунктуация , что следует за
Amen
, то естьAmen! => Amen!
,AmEN. => AmEN.
,I said Amen, bruh. => Amen,
иAMEN!!!! => AMEN!!!!
.!
это единственный символ, который нужно сохранить несколько раз..?!,
единственные символы, которые будут сохранены таким образом. - -40 байт , если есть экземпляр
amen
, выход,Heresy! at index [i]
а не из ничего, где[i]
есть индекс нарушившего слова , т.е.amen
.
Бонусные операции
Ввод и вывод имеет форму input => output
. (Разделитель здесь - пробел.)
BONUS 1
Can I get an Amen! => Amen!
AMEN! and AMEN! and a final Amen... => AMEN! AMEN! Amen.
Amen? Amen, and amEn! => Amen? Amen, amEn!
BONUS 2
The man sighed and said, "amen," and left. It's AMEN! => Heresy! at index [26] AMEN!
Leaderboards
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш счет равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
# Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать название языка ссылкой, которая затем будет отображаться в фрагменте списка лидеров:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
источник
amen
быть в порядке?a
вamen
. Например,G amen => 2
если ваш язык не проиндексирован; 3, если он одноиндексный.AMEN!!!! => AMEN!!!!
а ещеand a final Amen... => Amen.
?Ответы:
Сетчатка , 37 байт
Код длиной 57 байт соответствует бонусу -20 байт . Попробуйте онлайн!
Спасибо @ MartinBüttner за перенос моего Perl-ответа на Retina!
Как это устроено
источник
([.,?]|!*)
образец соответствия пунктуации для моего ответа? Я видел это и не мог не заметить это (и я конечно не мог найти лучшее решение!). Это, конечно, не побьет ваши :), но я не хочу заниматься плагиатом, и я не совсем уверен в этикете заимствования решений таких подзадач, как этот.VBA, 193 байта
Нет разделения, нет регулярных выражений, нет бонусов. Была версия, которая получила оба бонуса, но была НАМНОГО дольше.
источник
for i=1 to
наfor i=1To
Perl, 51 байт
Фактический исходный код содержит 70 байт , он должен быть запущен с
perl -nE
( +1 байт ) и соответствует бонусу -20 байт .источник
Python 2, 155 байт
пример
источник
JavaScript, 88 байт
108 байтов - 20 байтов (ловит пунктуацию)
источник
Amen?!.
для вводаAmen?!.
иAmen!
для вводаAmen!!!
.grep and sed,
85838477 - 20 = 57 байтисточник
Amen?
для вводаall the people said??
. Лучший обходной путь, который я смог найти, - это заменить строку наAmenx
.amen.
для вводаamen.
. Исправление приведет к сокращению вашего ответа: просто изменитеgrep -v '^[amen]*$'
наgrep \[AMEN]
.Perl 103 - 60 = 43 байта
Считая Шебанг как единое, ввод берется из стандартного ввода. Поддерживает пунктуацию для -20 байтов и определяет ересь для -40 .
Образец использования
Perl, 70 - 20 = 50 байтов
Считая Шебанг как единое, ввод берется из стандартного ввода. Поддерживает пунктуацию для -20 байтов.
Образец использования
источник
ha]
. (Неважно, только что увидел комментарий ОП о том, что входные данные не могут содержать квадратные скобки ... этот вопрос трансформировался столько раз, что я не могу отследить.)𝔼𝕊𝕄𝕚𝕟, 66 - 20 = 46 символов / 80 - 20 = 60 байтов
Попробуй здесь - только Firefox.
Впервые здесь, в PPCGSE. Надеюсь, этот гольф довольно хорош.
РЕДАКТИРОВАТЬ: На самом деле, я бью CJam (по количеству символов), так что это очень хорошо!
источник
CJam, 57 байтов
Длина кода составляет 97 байт, и он соответствует -40 байтам. бонусу .
Попробуйте онлайн в интерпретаторе CJam .
источник
JavaScript, 100 байт
источник
x=prompt();
и вы можете использовать такжеalert(prompt().replace(...).replace(...).match)
JavaScript,
136135 - 40 - 20 = 75 байтОбъяснение:
Этот код управляется регулярным выражением из трех частей, которое передает результаты в
replace
обратный вызов . Части являются:all the people said[?: ]
- просто соответствует требуемомуall the people said
шаблону(amen)([.,?]|!*)
- соответствует любому случаюamen
и пунктуации (одна.,?
или ноль или более!
, что делает пунктуацию необязательной) в отдельных группах соответствия - кредит Деннису за образец пунктуации.
- соответствует любому другому персонажу, не являющемуся частью вышеуказанных шаблонов, по одному за разСледовательно, любое совпадение должно быть либо строкой «все люди», либо совпадением «аминь» с необязательной пунктуацией, либо одним символом, не входящим ни в одну из этих фраз. Мы используем логику в обратном вызове replacer, чтобы сохранить и заменить соответствующие части строки и заменить любой другой символ пустой строкой.
источник
Python 2, 191 - 40 = 151 байт
Нет регулярных выражений, а Бонус 2
источник