Geobitsian言語は英語の新しい倒錯であり、単語はそれぞれが異なる文字で始まる必要があるセグメントに分割されます。次に、それらの開始文字の1つが別の文字列に現れるたびに、対応するセグメント全体に置き換えられ、大文字が使用されます。
このプロセスはGeobitsizingと呼ばれます。
たとえば、「ジオビット」という単語geo bits
は、
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
としてGeobitsizedになります
Algeoy met a Bitsear
A Bitsear met Algeoy
The Bitsear was bitsulgeoy
The bitsulgeoe was Algeoy
すべてg
がになるのでgeo
、すべてがG
(何もありませんが)になりGeo
、すべてb
がbits
になり、すべてがにB
なりBits
ます。
各置換は、中間ステップではなく、元の文字列に対して実行されることに注意してください。たとえば、代わりに作成されgeo
ていた場合gbo
、b
作成されたはに置き換えられませんbits
。
チャレンジ
Geobitsian言語を生成できるプログラムまたは関数を作成します。
小文字(az)とスペースで構成される1行の文字列を取得します。これは、セグメントを区切るスペースを使用して、ジオビット化引数として使用される単語になります。あなたは仮定することができます:
- セグメントは空になりません。そのため、スペースは互いに隣接せず、文字列の先頭または末尾にありません。
- 各セグメントは異なる文字で始まります。したがって、26を超えることはできません。
たとえば、あなたがサポートしなければならないいくつかの有効なセグメント化された文字列はgeo bits
、butt ner
、alex
、およびdo o r k nob
(単一文字のセグメントは影響を与えませんが、有効です)。しかしgeo
、butt ner
、Alex
、およびdo o r k n ob
無効です。
また、プログラムまたは関数は、別の任意の文字列を取得して、ジオビット化を適用し、結果のジオビット言語を印刷または返す必要があります。
この文字列には、改行と印刷可能なASCIIのみが含まれると想定できます。
入力から出力まで大文字小文字を保存する必要があることに注意してください。
no pro gr am m ing
Geobitsizing引数として使用するいくつかの例を次に示します。
[empty string]
→ [empty string]
i
→ ing
I
→ Ing
Mmmm, mmm... MmmmMMM: m&m!
→ Mmmm, mmm... MmmmMMM: m&m!
(変更なし)
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
引数がどのように配置されても、結果は同一である必要があることに注意してください。たとえばing pro m no am gr
、上記と同じ結果が得られます。
バイト単位の最短コードが優先されます。
\\b${l}(\\S+)
が、5バイトかかります。
abra cadabra
、!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
それはすべてのエッジケースをカバーする必要があり、1回の試行は、正規表現を使用する場合は、それらの多くがあります...
["no", "pro", "gr", "am", "m", "ing"]