La langue géobitsienne est une nouvelle perversion de l'anglais où un mot est divisé en segments qui doivent commencer par une lettre différente. Ensuite, chaque fois qu'une de ces lettres de départ apparaît dans une autre chaîne, elle est remplacée par tout son segment correspondant, en maintenant la capitalisation.
Ce processus est appelé Geobitsizing .
Par exemple, le mot " Geobits " pourrait être décomposé geo bits
et le poème absurde
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
serait géobitsized avec elle comme
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
parce que chaque g
devient geo
, chaque G
(bien qu'il n'y en ait pas) devient Geo
, chaque b
devient bits
et chaque B
devient Bits
.
Notez que chaque substitution est effectuée par rapport à la chaîne d'origine, et non à une étape intermédiaire. par exemple, si cela geo
avait été le cas gbo
, le b
's créé ne serait pas remplacé parbits
.
Défi
Écrivez un programme ou une fonction qui peut générer une langue géobitsienne.
Prenez une chaîne d'une seule ligne composée de lettres minuscules (az) et d'espaces. Ce sera le mot utilisé comme argument de géobitsizing, les espaces séparant les segments. Vous pouvez supposer:
- Les segments ne seront pas vides. Les espaces ne seront donc pas voisins les uns des autres, ni au début ou à la fin de la chaîne.
- Chaque segment commence par une lettre différente. Il ne peut donc y en avoir plus de 26.
Par exemple, certaines chaînes segmentés valides que vous devez prendre en charge sont geo bits
, butt ner
, alex
, et do o r k nob
(segments d'une seule lettre n'a aucun effet , mais sont valables). Mais geo
, butt ner
, Alex
etdo o r k n ob
ne sont pas valides.
Votre programme ou fonction doit également prendre une autre chaîne arbitraire pour appliquer le géobitsizing et imprimer ou renvoyer la langue géobitsienne résultante.
Vous pouvez supposer que cette chaîne ne contient que des sauts de ligne et des caractères ASCII imprimables.
N'oubliez pas que les majuscules doivent être préservées de l'entrée à la sortie.
Voici d'autres exemples d'utilisation no pro gr am m ing
comme argument de géobitsizing:
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(pas de changement)
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
Notez que les résultats doivent être identiques quelle que soit la disposition de l'argument, par exemple ing pro m no am gr
doivent produire les mêmes résultats que précédemment.
Le code le plus court en octets gagne.
\\b${l}(\\S+)
bien que cela vous coûte 5 octets.
abra cadabra
, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
qui devrait couvrir tous les cas de pointe, et d'entre eux il y a beaucoup si l' on essaie d'utiliser regexes ...
["no", "pro", "gr", "am", "m", "ing"]