Введение
Мы - особенно гики среди нас, которые склонны быть фанатами - все помнят этот старый мультфильм о Дальней стороне :
Очевидно, профессор Шварцман мог бы еще чуть-чуть освежить свои навыки программирования, прежде чем использовать свое изобретение. Но можете ли вы повторить это самостоятельно ... используя как можно меньше байтов?
Входные характеристики
Вы должны создать сценарий, который переводит звуки собак в соответственно интонированные "Эй". Это чистый код гольф; выигрывает наименьшее количество байтов.
Ваш вход будет состоять из некоторой комбинации следующих токенов:
Bark
,Baark
,Baaark
,Baaaark
, ... (то есть,B*rk
по крайней мере , 1a
замена звездочки)Woof
,Wooof
,Woooof
, ... (W*f
с , по меньшей мере , 2o
с заменой звездочки)Grr
,Grrr
,Grrrr
, ..., ( сG
последующим по меньшей мере , 2r
с)- Любое количество символов
.
(точка),!
(восклицательный знак) и / или?
(знак вопроса), которые могут встречаться в любом месте ввода
Обратите внимание, опять же, что токены на Woof
основе и на Grr
основе всегда требуют как минимум двух o
s и r
s соответственно; Wof
и неGr
являются действительными токенами.
Нет ограничений на длину токена (например, сколько повторных a
s может быть в Bark
токене); Однако, ваш декодер должен только работать правильно для входных лексем до 10 полных a
с, o
с, или r
S передать этот вызов.
Выходные характеристики
В соответствии с замыслом Шварцмана, ваша программа-декодер для собак должна обработать его в выходной текст следующим образом:
Bark
,Woof
ИGrr
сталиHey
;Baark
,Wooof
ИGrrr
сталиHeyy
;Baaark
,Woooof
ИGrrrr
сталиHeyyy
; и т.п.- Для всех
Bark
основанных токенов числоy
s в выходномHey
токене должно быть равно количествуa
s; - Для всех
Woof
основанных токенов числоy
s в выходномHey
токене должно быть на единицу меньше числаo
s; - Для всех
Grr
основанных токенов числоy
s в выходномHey
токене должно быть на единицу меньше числаr
s; - Все знаки препинания (
.
,!
и?
) остается без изменений.
Не забудьте удалить один y
из выходных данных только для Woof
s и Grr
s! Ввод 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!
- Входные данные: