
Мистер Макки - персонаж из Южного парка, хорошо известный тем, что он добавляет «m'kay» во все, что он говорит.
Напишите программу или функцию, которая преобразует строку текста в то, что сказал бы мистер Макки.
M'kay размещение
m'kayимеет случайный 50% шанс того , чтобы быть добавлен после пунктуации,,.,?и!. Если это так, за ним будет следовать точно такой же знак пунктуации, который стоит перед ним и перед ним стоит пробел.Например, в предложении можно добавить
Test, test.два местаm'kay: после запятой и после точки с вероятностью 50% в каждом месте. Возможные результаты будутTest, m'kay, test. илиTest, test. M'kay.илиTest, m'kay, test. M'kay..Всегда должен быть хотя бы один
m'kayдобавленный . Более того, оно не всегда может быть в одном и том же месте, и каждое действительное место, гдеm'kayего можно добавить, должно происходить с равной вероятностью. То есть вы не можетеm'kayвсегда добавлять в конце строки, если из-за случайности вы никогда не добавляли ни одногоm'kay. Если есть только одинm'kay, он должен иметь одинаковую вероятность появления в каждой действительной позиции, даже если его присутствие является обязательным.Если
m'kayпосле?,.или!,mдолжен быть в верхнем регистре.Количество
mвm'kayдолжно быть uniformely выбрал между 1 и 3. То естьm'kay,mm'kayиmmm'kayесть все возможные варианты, каждый из которых с вероятностью 0,33 ... Если он должен быть в верхнем регистре (см выше правила), всеmдолжно быть в верхнем регистре.
Входы, выходы
Входными данными являются строки ASCII, содержащие символы от ASCII дек 32 (пробел) до ASCII дек 126 (тильда
~). На входе нет разрывов строк. Вы можете предположить, что любой вход будет содержать хотя бы один из, . ? !.Вы можете предположить, что
m'kayна входе нет ни одного из вариантов.Входные данные могут быть взяты из STDIN, аргументов функции, командной строки или чего-либо подобного.
Вывод может быть через STDOUT, возврат функции или что-то подобное.
Контрольные примеры
- Входные данные:
Test.
Возможный вывод: Test. M'kay.
- Входные данные:
Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. It's 100% free, no registration required.
Возможный вывод: Programming Puzzles & Code Golf Stack Exchange is a question and answer site for programming puzzle enthusiasts and code golfers. MMM'kay. It's 100% free, mm'kay, no registration required.
- Входные данные:
Drugs are bad, so, if you do drugs, you're bad, because drugs are bad. They can hurt your body, cause drugs are bad.
Возможный вывод: Drugs are bad, m'kay, so, if you do drugs, you're bad, m'kay, because drugs are bad. They can hurt your body, m'kay, cause drugs are bad. M'kay.
- Входные данные:
Do you understand? Really? Good!
Возможный вывод: Do you understand? MM'kay? Really? Good! MMM'kay!
счет
Это код-гольф , поэтому выигрывает самый короткий код в байтах, ладно?
M'kayвероятность случайного добавления 50% после знаков препинания,.,? и! » кажется несовместимой с « всегда должен быть хотя бы один m'kayдобавленный ». Пожалуйста, уточните, что