Wprowadzenie
Wszyscy - zwłaszcza maniacy wśród nas, którzy są fanami - wszyscy pamiętamy tę starą kreskówkę z Far Side :
Najwyraźniej profesor Schwartzman mógł odrobinę poprawić swoje umiejętności programistyczne, zanim zastosuje swój wynalazek. Ale czy możesz to samodzielnie odtworzyć ... używając jak najmniej bajtów?
Dane wejściowe
Musisz stworzyć skrypt, który tłumaczy odgłosy psa na odpowiednio intonowane „Hej”. To jest czysty golf; najniższa liczba bajtów wygrywa.
Twój wkład będzie składał się z kombinacji następujących tokenów:
Bark,Baark,Baaark,Baaaark, ... (to znaczyB*rkco najmniej 1azastępując gwiazdka)Woof,Wooof,Woooof... (W*fz co najmniej 2oa zastąpienie gwiazdka)Grr,Grrr,Grrrr, ..., (Gpo co najmniej 2rS)- Dowolna liczba
.(kropka),!(wykrzyknik) i / lub?(znak zapytania), które mogą wystąpić w dowolnym miejscu na wejściu
Zauważ ponownie, że tokeny Woofoparte i Grroparte zawsze zawsze wymagają co najmniej dwóch o si r; Wofi nieGr są prawidłowymi tokenami.
Nie ma ograniczenia co do długości tokenów (np. Ile powtórzeń amoże znajdować się w Barktokenie); Jednak twój dekoder musi pracować poprawnie tylko dla żetonów wejściowych o wysokości do 10 sumy as, oS lub rS, aby przejść to wyzwanie.
Dane wyjściowe
Wierny projektowi Schwartzmana, twój program dekodera dla psów musi przetworzyć go na tekst wyjściowy w następujący sposób:
Bark,WoofIGrrstaćHey;Baark,WooofIGrrrstaćHeyy;Baaark,WoooofIGrrrrstaćHeyyy; itp.- W przypadku wszystkich
Barktokenów liczbays wHeytokenie opartym na danych wyjściowych musi być równa liczbieas; - W przypadku wszystkich
Wooftokenów liczbays naHeytokenie opartym na danych wyjściowych musi być o jeden mniejsza niż liczbaos; - W przypadku wszystkich
Grrtokenów liczbays naHeytokenie opartym na danych wyjściowych musi być o jeden mniejsza niż liczbars; - Cała interpunkcja (
.,!i?) pozostaje niezmieniona.
Pamiętaj, aby usunąć jeden yz danych wyjściowych tylko dla Woofs i Grrs! Wejście Baaaaaaaark?z 8 as stanie się Heyyyyyyyy?z pasującym zestawem 8 ys. Jednak Woooooooof?staje się tylko Heyyyyyyy?, z 7 ys.
Ponownie, jeśli możesz sprawić, aby Twój program działał dla tokenów wejściowych o nieograniczonym rozmiarze, to świetnie, ale na potrzeby tego wyzwania Twój program zostanie sprawdzony tylko pod kątem prawidłowego działania tokenów wejściowych, które nie zawierają więcej niż 10 powtarzających się liter .
Zakłada się, że wszystkie Bark-, Woof- i Grroparte na tokenach w danych wejściowych zaczynają się od wielkich liter. Dlatego nie ma potrzeby radzenia sobie ze zmienianiem się Bark grrrw Hey heyycoś podobnego.
Przykładowe wejścia i wyjścia
- Wkład:
Bark. Bark! Bark!! - Wydajność:
Hey. Hey! Hey!!
- Wkład:
- Dane wejściowe:
Baaaaaark?(sześćas) - Wyjście:
Heyyyyyy?(sześćys)
- Dane wejściowe:
- Dane wejściowe:
Grrrrrrrr...(osiemrs) - Wyjście:
Heyyyyyyy...( siedemys)
- Dane wejściowe:
- Wkład:
?...! - Wydajność:
?...!
- Wkład:
- Wkład:
Wooof Woof? Grrrr. Baaaark Grr! - Wydajność:
Heyy Hey? Heyyy. Heyyyy Hey!
- Wkład:

