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*rkcon almeno 1asostituire l'asterisco)Woof,Wooof,Woooof, ... (W*fcon almeno 2os sostituendo l'asterisco)Grr,Grrr,Grrrr, ..., (Gseguito da almeno 2rs)- 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 Woofbasati e Grrgettoni basati richiedono sempre almeno due o s e rs rispettivamente; Wofe nonGr sono token validi.
Non c'è limite alla durata di un token (ad es. Quante as ripetute possono esserci in un Barktoken); tuttavia, il tuo decodificatore deve funzionare correttamente solo per i token di input con un massimo di 10a s, os o rs 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,WoofeGrrdiventaHey;Baark,WooofeGrrrdiventaHeyy;Baaark,WoooofeGrrrrdiventaHeyyy; eccetera.- Per tutti i
Barktoken basati su, il numero diys nelHeytoken basato sull'output deve essere uguale al numero dias; - Per tutti i
Wooftoken basati, il numero diys nelHeytoken basato sull'output deve essere uno in meno del numero dios; - Per tutti i
Grrtoken basati, il numero diys nelHeytoken basato sull'output deve essere uno in meno del numero dirs; - Tutti punteggiatura (
.,!, e?) rimane invariato.
Ricordarsi di cadere una ydall'uscita per Woofs e Grrs solo! L'input Baaaaaaaark?, con 8 as, diventerà Heyyyyyyyy?, con un set corrispondente di 8 ys. Tuttavia, Woooooooof?diventa solo Heyyyyyyy?, con 7 ys.
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 Grrgettoni basati nel vostro ingresso si presume di iniziare con le lettere maiuscole. Pertanto, non è necessario gestire la trasformazione Bark grrrin Hey heyyo qualcosa di simile.
Esempi di ingressi e uscite
- Ingresso:
Bark. Bark! Bark!! - Produzione:
Hey. Hey! Hey!!
- Ingresso:
- Input:
Baaaaaark?(seias) - Uscita:
Heyyyyyy?(seiys)
- Input:
- Ingresso:
Grrrrrrrr...(ottors) - Uscita:
Heyyyyyyy...( setteys)
- Ingresso:
- Ingresso:
?...! - Produzione:
?...!
- Ingresso:
- Ingresso:
Wooof Woof? Grrrr. Baaaark Grr! - Produzione:
Heyy Hey? Heyyy. Heyyyy Hey!
- Ingresso:

