La lingua geobitsiana è una nuova perversione dell'inglese in cui una parola è suddivisa in segmenti che ognuno deve iniziare con una lettera diversa. Quindi ogni volta che una di quelle lettere iniziali appare in un'altra stringa, viene sostituita con l'intero segmento corrispondente, mantenendo le maiuscole.
Questo processo si chiama Geobitsizing .
Ad esempio, la parola " Geobit " potrebbe essere scomposta geo bitse la poesia senza senso
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
sarebbe geobitsized con esso come
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
perché ogni gdiventa geo, ogni G(anche se non ce ne sono) diventa Geo, ogni bdiventa bitse ogni Bdiventa Bits.
Si noti che ogni sostituzione viene eseguita rispetto alla stringa originale, non a nessun passaggio intermedio. ad esempio, se geofosse stato gboinvece, il bcreato non verrebbe sostituito con bits.
Sfida
Scrivi un programma o una funzione in grado di generare la lingua geobitsiana.
Accetta una stringa a riga singola composta da lettere minuscole (az) e spazi. Questa sarà la parola usata come argomento di geobitsizing, con gli spazi che separano i segmenti. Puoi presumere:
- I segmenti non saranno vuoti. Quindi gli spazi non si avvicinano né si trovano all'inizio o alla fine della stringa.
- Ogni segmento inizia con una lettera diversa. Quindi non possono esserci più di 26.
Ad esempio, alcune stringhe segmentati valide è necessario sostenere sono geo bits, butt ner, alex, e do o r k nob(segmenti singoli lettera non hanno alcun effetto, ma sono validi). Ma geo , butt ner, Alex, e do o r k n obnon sono validi.
Il programma o la funzione deve inoltre includere un'altra stringa arbitraria per applicare il Geobitsizing e stampare o restituire la lingua Geobitsian risultante.
Puoi presumere che questa stringa contenga solo nuove righe e ASCII stampabile.
Ricorda che le lettere maiuscole devono essere preservate dall'input all'output.
Ecco alcuni altri esempi che usano no pro gr am m ingcome argomento Geobitsizing:
[empty string] → [empty string]
i → ing
I → Ing
Mmmm, mmm... MmmmMMM: m&m!→ Mmmm, mmm... MmmmMMM: m&m!(nessuna modifica)
People think bananas are great, don't you? → Proeoprole thingnok bamnoamnoams amre grreamt, dono't you?
Pet a Puppy
Google Wikipedia
↓
Proet am Prouproproy
Groogrle Wingkingproedingam
Si noti che i risultati dovrebbero essere identici, indipendentemente da come è organizzato l'argomento, ad esempio ing pro m no am grdovrebbero produrre gli stessi risultati di cui sopra.
Vince il codice più breve in byte.
\\b${l}(\\S+)anche se ti costa 5 byte.
abra cadabra, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~che dovrebbe coprire tutti i casi limite, e ci sono un sacco di loro, se si cercherà di utilizzare espressioni regolari ...
["no", "pro", "gr", "am", "m", "ing"]