您提供技术支持的布鲁斯·迪肯森,他产生了蓝牡蛎崇拜记录会话。当他要更多牛铃时,您可以给他。
你的任务
编写一个程序或函数,该程序或函数将字符串(或您的语言中的等效字符串)作为输入,并输出一个包含一个以上牛铃的相关字符串。
一个琴弦包含多少个牛铃?
字符串包含的牛铃数量等于通过排列字符串的字符可获得的“牛铃”不同副本的最大数量。例如,"bbbccceeellllllooowwwwwwwww"
包含3个牛铃,而"bbccceeellllllooowwwwwwwww"
和"bbbccceeelllllooowwwwwwwww"
分别包含2个牛铃和"cowbel"
0个牛铃。
输出应如何与输入相关?
输出应按此顺序包括输入字符串的级联和增加牛铃数量所需的输入字符串的最短前缀。
例如,"bbbccceeelllllooowwwwwwwww"
只需要一个"l"
即可容纳3个牛铃而不是2个;包含的最短前缀"l"
是"bbbccceeel"
。因此,如果输入为"bbbccceeelllllooowwwwwwwww"
,则输出应为"bbbccceeelllllooowwwwwwwwwbbbccceeel"
。
技术性
- 您可以假定输入仅包含可打印的ASCII字符。如果有一个或两个令您的语言的字符串处理令人讨厌的字符(例如换行符或
\
),则可以假定输入中不包含这些字符,只需提及此限制。 - 您可以进一步假设输入中的字母字符全部为小写或全部为大写。如果您不选择其中之一,则不区分大小写计算牛铃。
- 您可以进一步假设输入包含每个字符的至少一个拷贝
b
,c
,e
,l
,o
,和w
。这等效于假定可以将字符串的某些前缀连接到该字符串以产生包含更多牛铃的字符串。(请注意,输入字符串本身不必包含牛铃。) - 如果您的语言具有可解决此问题的内建函数...则认真地使用它,真是太棒了。
镀金尿布
由于录制工作室的时间很昂贵,因此您的代码必须尽可能短。字节最少的条目是赢家!
测试用例
(pastebin链接使复制/粘贴更加容易)
测试输入#1: "christopher walken begs for more cowbell!"
测试输出#1: "christopher walken begs for more cowbell!christopher wal"
测试输入2: "the quick brown fox jumps over the lazy dog"
测试输出2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
测试输入#3: "cowbell"
测试输出#3: "cowbellcowbell"
测试输入#4: "cowbell cowbell cowbell"
测试输出4: "cowbell cowbell cowbellcowbell"
测试输入#5: "cowbell cowbell cowbel"
测试输出5: "cowbell cowbell cowbelcowbel"
测试输入6: "bcelow"
测试输出6: "bcelowbcel"
测试输入#7: "abcdefghijklmnopqrstuvwxyz"
测试输出#7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
测试输入#8: "cccowwwwbbeeeeelllll"
测试输出#8: "cccowwwwbbeeeeelllllccco"
测试输入#9: "be well, programming puzzles & code golf"
测试输出#9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
测试输入#10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
测试输出#10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab"
测试输入#11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
"
测试输出#11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
c-c-b-c
i have a cow, i have a bell"
test case -> result
一个大的预格式化代码块。从美学上讲它更好,并且更容易复制粘贴。
L
单词中有两个s 的事实外,这不是挑战所要求的。