introduction
Nous - en particulier les geeks parmi nous, qui ont tendance à être des fans - nous souvenons tous de ce vieux dessin animé de Far Side :
De toute évidence, le professeur Schwartzman aurait pu peaufiner ses compétences en programmation juste un peu plus avant de mettre son invention à profit. Mais pouvez-vous le reproduire vous-même ... en utilisant le moins d'octets possible?
Spécifications d'entrée
Vous devez créer un script qui traduit les sons de chien en "Hey" correctement intonés. C'est du golf à code pur; le plus petit nombre d'octets gagne.
Votre entrée consistera en une combinaison des jetons suivants:
Bark
,Baark
,Baaark
,Baaaark
, ... (qui est,B*rk
avec au moins unea
substitution , l'astérisque)Woof
,Wooof
,Woooof
, ... (W*f
d'au moins 2o
s remplaçant l'astérisque)Grr
,Grrr
,Grrrr
, ..., (G
suivie d'au moins 2r
s)- N'importe quel nombre de caractères
.
(point),!
(point d'exclamation) et / ou?
(point d'interrogation) pouvant apparaître n'importe où dans l'entrée
Notez, encore une fois, que les jetons Woof
basés et Grr
basés nécessitent toujours au moins deux o
s et r
s respectivement; Wof
et neGr
sont pas des jetons valides.
Il n'y a pas de limite sur la durée d'un jeton (par exemple, combien de a
s répétés il peut y avoir dans un Bark
jeton); cependant, votre décodeur n'a besoin de fonctionner correctement que pour les jetons d'entrée avec jusqu'à 10a
s, o
s ou r
s au total pour réussir ce défi.
Spécifications de sortie
Fidèle à la conception de Schwartzman, votre programme de décodeur canin doit le traiter en texte de sortie comme suit:
Bark
,Woof
EtGrr
devenirHey
;Baark
,Wooof
EtGrrr
devenirHeyy
;Baaark
,Woooof
EtGrrrr
devenirHeyyy
; etc.- Pour tous les
Bark
jetons basés sur, le nombre dey
s dans leHey
jeton basé sur la sortie doit être égal au nombre dea
s; - Pour tous les
Woof
jetons basés sur, le nombre dey
s dans leHey
jeton basé sur la sortie doit être inférieur de un au nombre deo
s; - Pour tous les
Grr
jetons basés sur, le nombre dey
s dans leHey
jeton basé sur la sortie doit être inférieur de un au nombre der
s; - Tous les signes de ponctuation (
.
,!
et?
) reste inchangé.
N'oubliez pas d'en supprimer un y
de la sortie pour Woof
s et Grr
s uniquement! L'entrée Baaaaaaaark?
, avec 8 a
s, deviendra Heyyyyyyyy?
, avec un ensemble correspondant de 8 y
s. Cependant, Woooooooof?
devient seulement Heyyyyyyy?
, avec 7 y
s.
Encore une fois, si vous pouvez faire fonctionner votre programme pour des jetons d'entrée de taille illimitée, c'est parfait, mais aux fins de ce défi, votre programme ne sera vérifié que pour s'assurer qu'il fonctionne correctement pour les jetons d'entrée qui n'ont pas plus de 10 lettres répétées. .
Tous les jetons Bark
-, Woof
- et Grr
basés dans votre entrée sont supposés commencer par des majuscules. Par conséquent, il n'est pas nécessaire de gérer la transformation Bark grrr
en Hey heyy
ou quelque chose de similaire.
Exemples d'entrées et de sorties
- Contribution:
Bark. Bark! Bark!!
- Sortie:
Hey. Hey! Hey!!
- Contribution:
- Entrée:
Baaaaaark?
(sixa
s) - Sortie:
Heyyyyyy?
(sixy
s)
- Entrée:
- Entrée:
Grrrrrrrr...
(huitr
s) - Sortie:
Heyyyyyyy...
( septy
s)
- Entrée:
- Contribution:
?...!
- Sortie:
?...!
- Contribution:
- Contribution:
Wooof Woof? Grrrr. Baaaark Grr!
- Sortie:
Heyy Hey? Heyyy. Heyyyy Hey!
- Contribution: