В настоящее время в Интернете есть мем, который состоит из взятия предложения, изменения его значения и добавления n't
в конце. Например, I am small
становитсяI am talln't
Вызов
Ради задачи мы упростим это: ваша задача будет обнаруживать, когда в предложении есть отрицание, и заменять его положительным с n't
добавлением в конце. Будут некоторые хитрые части, которые будут объяснены в правилах.
правила
- Вы должны взять строку в качестве входных данных и вернуть строку в качестве выходных данных .
- Ввод будет предложение в нижнем регистре , только
.
и в,
виде знаков препинания. - Вы должны заменить любой
no <any_word>
илиnot <any_word>
с<any_word>n't
. no
/not
должно быть словом, а не подстрокой: вам не нужно ничего менять вnone of those
- Если слово уже заканчивается на
n
, вы должны заменитьn't
на't
:no plan
стать,plan't
а неplann't
- Если после какого-либо слова, знака препинания или другого символа /
no
или заnot
ним не следует , вы должны заменить его на .no
not
yesn't
- составные слова считаются одним словом. так что даже если
no-op
содержит подстрокуno
, она не содержит слова нет. Так что результат будетno-op
и нет-opn't
. - Вам не нужно беспокоиться о грамматических ошибках. Например,
there is no way
приведет кthere is wayn't
. - Стандартные лазейки не допускаются.
- Это Codegolf , поэтому выигрывает самый короткий код.
Есть несколько примеров, даже если этот вызов пока не ясен.
Примеры
Входные данные: я люблю заниматься гольфом, но не люблю короткие программы. имеет ли это предложение смысл ... конечно нет.
Вывод: я люблю заниматься гольфом, но не люблю короткие программы. имеет ли это предложение смысл ... конечно, да нет.Вход : вы не приглашены. убирайся.
Вывод : вы не приглашены. убирайся.вход : я не в порядке, у меня нет плана и у меня нет оружия
Выход : я в порядке, у меня нет плана и у меня нет оружиявход : о нет, нет, я отказываюсь.
Вывод : о, да, нет, да, нет, не отказываюсь.вход : о нет, нет, я отказываюсь.
Вывод : о да не да да нет нет, я отказываюсь.вход : я не могу в это поверить, вы не можете кодегольф.
Вывод : я не могу в это поверить, ты не можешь играть в гольф.вход : о нет ... он сделал это снова.
Вывод : о да нет ... он сделал это снова.вход : нет, это не слово, Кевин. так что это не так.
Вывод : нет, нет, Кевин. так что это не так.Вход : разве это не для всех?
Выходные данные : не для всех ли?Входные данные : это не имеет смысла ...
Выходные данные : это не имеет смысла ...
I am small
статьI am bign't
?no n
привестиnn't
илиn't
?no n
может привести к тому,n't
что «слово»n
заканчивается наn
.Ответы:
Retina ,
867065 байт-16 байт благодаря @Neil .
-5 байт благодаря @ovs .
Попробуйте онлайн.
Объяснение:
источник
L
вот сокращение дляA-Z
сохранения 2 байтовT`-'`AB
и наоборот.Python 2 ,
208123113146 байтПопробуйте онлайн!
Потерял кучу байтов из-за слов, заканчивающихся на
n't
илиn
. Либо или короче, но обработка обоих была длиннее.источник
JavaScript (Node.js) , 95 байт
Попробуйте онлайн!
Спасибо Рик Хичкок за 2 байта
источник
Stax ,
757350 байтЗапустите и отладьте его
источник
Japt , 72 байта
Попробуйте онлайн!
источник
"yes-no maybe-so"
он производит"yes - mayben't - so"
.Java 8,
163136 байт-27 байт, создав порт ответа @recursive 's Stax .
Попробуйте онлайн.
источник