introduzione
Noi, specialmente i fanatici di noi, che tendono ad essere fan, tutti ricordiamo questo vecchio cartone animato di Far Side :
Chiaramente, il professor Schwartzman avrebbe potuto ripassare le sue capacità di programmazione solo un po 'di più prima di mettere in pratica la sua invenzione. Ma puoi replicarlo da solo ... usando il minor numero di byte possibile?
Specifiche di input
Devi creare una sceneggiatura che traduca i suoni dei cani in "Hey" opportunamente intonati. Questo è puro codice golf; vince il numero più basso di byte.
Il tuo input consisterà in una combinazione dei seguenti token:
Bark
,Baark
,Baaark
,Baaaark
, ... (cioèB*rk
con almeno 1a
sostituire l'asterisco)Woof
,Wooof
,Woooof
, ... (W*f
con almeno 2o
s sostituendo l'asterisco)Grr
,Grrr
,Grrrr
, ..., (G
seguito da almeno 2r
s)- Qualsiasi numero di caratteri
.
(punto),!
(punto esclamativo) e / o?
(punto interrogativo), che possono verificarsi in qualsiasi punto dell'input
Nota, ancora una volta, che i Woof
basati e Grr
gettoni basati richiedono sempre almeno due o
s e r
s rispettivamente; Wof
e nonGr
sono token validi.
Non c'è limite alla durata di un token (ad es. Quante a
s ripetute possono esserci in un Bark
token); tuttavia, il tuo decodificatore deve funzionare correttamente solo per i token di input con un massimo di 10a
s, o
s o r
s totali per superare questa sfida.
Specifiche di uscita
Fedele al progetto di Schwartzman, il tuo programma di decodifica canina deve elaborarlo nel testo di output come segue:
Bark
,Woof
eGrr
diventaHey
;Baark
,Wooof
eGrrr
diventaHeyy
;Baaark
,Woooof
eGrrrr
diventaHeyyy
; eccetera.- Per tutti i
Bark
token basati su, il numero diy
s nelHey
token basato sull'output deve essere uguale al numero dia
s; - Per tutti i
Woof
token basati, il numero diy
s nelHey
token basato sull'output deve essere uno in meno del numero dio
s; - Per tutti i
Grr
token basati, il numero diy
s nelHey
token basato sull'output deve essere uno in meno del numero dir
s; - Tutti punteggiatura (
.
,!
, e?
) rimane invariato.
Ricordarsi di cadere una y
dall'uscita per Woof
s e Grr
s solo! L'input Baaaaaaaark?
, con 8 a
s, diventerà Heyyyyyyyy?
, con un set corrispondente di 8 y
s. Tuttavia, Woooooooof?
diventa solo Heyyyyyyy?
, con 7 y
s.
Ancora una volta, se riesci a far funzionare il tuo programma per token di input di dimensioni illimitate, è fantastico, ma ai fini di questa sfida, il tuo programma verrà controllato solo per assicurarsi che funzioni correttamente per token di input che non hanno più di 10 lettere ripetute .
Tutto Bark
-, Woof
-, e Grr
gettoni basati nel vostro ingresso si presume di iniziare con le lettere maiuscole. Pertanto, non è necessario gestire la trasformazione Bark grrr
in Hey heyy
o qualcosa di simile.
Esempi di ingressi e uscite
- Ingresso:
Bark. Bark! Bark!!
- Produzione:
Hey. Hey! Hey!!
- Ingresso:
- Input:
Baaaaaark?
(seia
s) - Uscita:
Heyyyyyy?
(seiy
s)
- Input:
- Ingresso:
Grrrrrrrr...
(ottor
s) - Uscita:
Heyyyyyyy...
( settey
s)
- Ingresso:
- Ingresso:
?...!
- Produzione:
?...!
- Ingresso:
- Ingresso:
Wooof Woof? Grrrr. Baaaark Grr!
- Produzione:
Heyy Hey? Heyyy. Heyyyy Hey!
- Ingresso: