Містер Маккі - персонаж Саута- Парку, відомий тим, що додав "м'кай" у все, що він каже.
Напишіть програму або функцію, яка перетворює рядок тексту в те, що сказав містер Макей.
Добре розміщення
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
має бути одноманітно вибрана між 1 і 3. Тобтоm'kay
,mm'kay
іmmm'kay
це всі можливі варіанти, кожен з вірогідністю 0,33 ... Якщо він повинен бути великим, (див. Вище правило), усіm
повинні бути великими.
Входи, виходи
Вхідні дані - це рядки ASCII, що містять символи від ASCII Dec 32 (пробіл) до ASCII Dec 126 (Tilde
~
). У вході немає перерив рядків. Ви можете припустити, що будь-який вхід буде містити принаймні один із, . ? !
.Ви можете припустити, що
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
доданий ". Будь ласка, уточнюйте це