Мини-гольф по понедельникам: серия коротких вопросов о код-гольфе , публикуемых (надеюсь!) Каждый понедельник.
Иногда люди устают от жизненных правил: «не делай этого», «ты не можешь этого делать», «мы не позволим тебе сделать это». Это может показаться действительно ограничивающим время от времени! Но время от времени хорошо немного повеселиться, поэтому давайте напишем некоторый код, чтобы изменить эти правила. И в то время как мы на это, могли бы также изменить и другой негатив. (Конечно, эти изменения не будут носить временный характер, поэтому мы также оставим оригинальную формулировку.)
Вызов
Ваша задача состоит в том, чтобы написать программу или функцию, которая ставит <s>
зачеркивание HTML </s>
вокруг ограничительных слов, то есть слов, оканчивающихся на n't
или после которых, not
и после каждого из них вставляет свой положительный эквивалент в ALL CAPS. В конце, после пробела, должно быть указано количество произведенных замен. Например:
Please don't jump into the pool.
становится
Please <s>don't</s> DO jump into the pool. 1
Для слов, заканчивающихся n't
или сопровождаемых not
(а также cannot
) положительным эквивалентом является все до вышеупомянутого not
(исключая пробелы). Вот что я имею в виду:
do not speak
становится<s>do not</s> DO speak
it doesn't work
становитсяit <s>doesn't</s> DOES work
we cannot
становитсяwe <s>cannot</s> CAN
Однако есть несколько исключений. Убедитесь, что они обрабатываются правильно.
can't -> <s>can't</s> CAN
won't -> <s>won't</s> WILL
ain't -> <s>ain't</s> AM
shan't -> <s>shan't</s> SHALL
I'm not -> <s>I'm not</s> I AM
you're not -> <s>you're not</s> YOU ARE
Детали
- Ввод никогда не будет содержать пробелов, кроме обычных пробелов (без вкладок, новых строк и т. Д.).
- На входе никогда не будет двойных негативов (например
we can't not do this
). - Если
not
сразу после знака препинания появляется знак «А» или как часть другого слова, оставьте его. - Обязательно сохраняйте исходный текст, включая прописные / строчные буквы, между
<s></s>
тегами. - Если вы хотите, вы можете использовать
<strike></strike>
вместо<s></s>
.
Тест-кейсы
Входы:
I'm sorry, but you can't do that.
Driving on the beach isn't allowed.
Driving on the beach is not allowed.
Please don't jump in; I cannot imagine what might come of that.
Don't worry; we won't get into trouble.
I'm not perfect, but you're not either.
You shan't do it 'cause I ain't doin' it!
Can't we capitalize special cases?
I don't like the words can't, shan't, won't, don't, ain't, or ppcgn't.
Oh, this? It's nothing.
Tie a slipknot in the rope.
Would you like Pinot Noir?
This sentence contains none of the replacement words. Not even knot or ca't.
This sentence doesn't contain one of the replacement words.
Выходы:
I'm sorry, but you <s>can't</s> CAN do that. 1
Driving on the beach <s>isn't</s> IS allowed. 1
Driving on the beach <s>is not</s> IS allowed. 1
Please <s>don't</s> DO jump in; I <s>cannot</s> CAN imagine what might come of that. 2
<s>Don't</s> DO worry; we <s>won't</s> WILL get into trouble. 2
<s>I'm not</s> I AM perfect, but <s>you're not</s> YOU ARE either. 2
You <s>shan't</s> SHALL do it 'cause I <s>ain't</s> AM doin' it! 2
<s>Can't</s> CAN we capitalize special cases? 1
I <s>don't</s> DO like the words <s>can't</s> CAN, <s>shan't</s> SHALL, <s>won't</s> WILL, <s>don't</s> DO, <s>ain't</s> AM, or <s>ppcgn't</s> PPCG. 7
Oh, this? It's nothing. 0
Tie a slipknot in the rope. 0
Would you like Pinot Noir? 0
This sentence contains none of the replacement words. Not even knot or ca't. 0
This sentence <s>doesn't</s> DOES contain one of the replacement words. 1
счет
Это код-гольф , поэтому выигрывает самый короткий действительный код в байтах. Tiebreaker переходит к представлению, которое первым достигло конечного числа байтов. Победитель не будет выбран в следующий понедельник, 26 октября. Удачи!
Can't we capitalize special cases?
Oh this? It's nothing...
или I wonder if we'll notice any words like this?
?