Введение
Мы - особенно гики среди нас, которые склонны быть фанатами - все помнят этот старый мультфильм о Дальней стороне :
Очевидно, профессор Шварцман мог бы еще чуть-чуть освежить свои навыки программирования, прежде чем использовать свое изобретение. Но можете ли вы повторить это самостоятельно ... используя как можно меньше байтов?
Входные характеристики
Вы должны создать сценарий, который переводит звуки собак в соответственно интонированные "Эй". Это чистый код гольф; выигрывает наименьшее количество байтов.
Ваш вход будет состоять из некоторой комбинации следующих токенов:
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 являются действительными токенами.
Нет ограничений на длину токена (например, сколько повторных as может быть в Barkтокене); Однако, ваш декодер должен только работать правильно для входных лексем до 10 полных aс, oс, или 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!
- Входные данные:

