Вступ
Ми - особливо гірки серед нас, які, як правило, є фанатами - всі пам’ятаємо цей старий мультфільм Far Side :
Зрозуміло, що професор Шварцман міг довести свої навички програмування лише на трохи більше, перш ніж застосувати свій винахід до використання. Але чи можете ви повторити це самостійно ... використовуючи якомога менше байтів?
Вхідні характеристики
Ви повинні створити сценарій, який переводить звуки собак у відповідно інтоновані "Ей". Це чистий код гольфу; виграє найменша кількість байтів.
Ваш вхід буде складатися з комбінації таких лексем:
Bark,Baark,Baaark,Baaaark, ... (тобто,B*rkпо крайней мере , 1aзаміна зірочки)Woof,Wooof,Woooof, ... (W*fз , щонайменше , 2oз заміною зірочки)Grr,Grrr,Grrrr, ..., ( зGподальшим щонайменше , 2rс)- Будь-яка кількість символів
.(період),!(знак оклику) та / або?(знак питання), які можуть виникати в будь-якому місці введення
Знову зауважимо, що маркери- Woofбазировані та Grr-залежні завжди потребують принаймні двох o s та rs відповідно; Wofі неGr є дійсними маркерами.
Не існує обмеження на тривалість лексеми (наприклад, скільки повторень aможе бути в Barkмаркері); однак, ваш декодер повинен правильно працювати лише для введення маркерів до 10 загальних as, os або rs, щоб пройти цей виклик.
Вихідні характеристики
Вірна дизайну Шварцмана, ваша програма собачого декодера повинна обробити її у вихідний текст наступним чином:
Bark,,WoofіGrrстатиHey;Baark,,WooofіGrrrстатиHeyy;Baaark,,WoooofіGrrrrстатиHeyyy; тощо.- Для всіх
Barkтокенів, що базуються, кількістьys уHeyмаркері, що базується на виході, має бути рівним кількостіas; - Для всіх
Woofбазисних лексем кількістьys у виведеномуHeyтокені має бути на одиницю менше, ніж кількістьos; - Для всіх
Grrбазисних лексем кількістьys у виведеномуHeyтокені має бути на одиницю менше, ніж кількістьrs; - Усі розділові знаки (
.,!і?) залишаються незмінними.
Не забудьте скинути один yз результатів лише для Woofs та Grrs! Вхід Baaaaaaaark?, з 8 aс, стане Heyyyyyyyy?, з відповідним набором 8 yс. Однак Woooooooof?стає лише Heyyyyyyy?, з 7 yс.
Знову ж таки, якщо ви можете змусити вашу програму працювати для вхідних жетонів необмеженого розміру, це чудово, але для цілей цього виклику ваша програма перевірятиметься лише для того, щоб вона працювала належним чином для вхідних маркерів, що мають не більше 10 повторених літер .
Все Bark-, Woof-, і Grr-На маркери в вашому вході передбачається почати з великої літери. Тому не потрібно обробляти перетворення Bark grrrна Hey heyyщось подібне.
Приклад Входи та Виходи
- Вхід:
Bark. Bark! Bark!! - Вихід:
Hey. Hey! Hey!!
- Вхід:
- Вхід:
Baaaaaark?(шістьaс) - Вихід:
Heyyyyyy?(шістьyс)
- Вхід:
- Вхід:
Grrrrrrrr...(вісімrс) - Вихід:
Heyyyyyyy...( сімyс)
- Вхід:
- Вхід:
?...! - Вихід:
?...!
- Вхід:
- Вхід:
Wooof Woof? Grrrr. Baaaark Grr! - Вихід:
Heyy Hey? Heyyy. Heyyyy Hey!
- Вхід:

