Geobitsian语言是一种新的英语变体,其中一个单词被分成多个段,每个段必须以不同的字母开头。然后,每当这些起始字母之一出现在另一个字符串中时,它就会被其相应的整个段替换,从而保持大写。
此过程称为Geobitsizing。
例如“ Geobits ” 这个词可以被分解成geo bits
废话诗。
Algy met a Bear
A Bear met Algy
The Bear was bulgy
The bulge was Algy
将与它进行地理位
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
。
挑战
编写一个程序或函数,可以生成地球人的语言。
接受由小写字母(az)和空格组成的单行字符串。这将是用作Geobitsizing参数的单词,并用空格分隔各段。您可以假设:
- 细分不会为空。因此空格将不会彼此相邻,也不会位于字符串的开头或结尾。
- 每个段均以不同的字母开头。因此,不能超过26。
例如,你必须支持一些有效的分割字符串是geo bits
,butt ner
,alex
,和do o r k nob
(单个字母段有没有影响,但有效)。但是geo
,butt ner
,Alex
,和do o r k n ob
是无效的。
您的程序或函数还需要输入另一个任意字符串,以将Geobitsizing应用于,打印或返回结果的Geobitsian语言。
您可以假定此字符串仅包含换行符和可打印的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{|}~
它应该涵盖所有边缘情况,如果尝试使用正则表达式,则有很多情况...
["no", "pro", "gr", "am", "m", "ing"]