给定由小写字母组成的字符串s,例如
aabaaababbbbaaba
而正整数n(例如4
)输出长度为n的字符串t,使得当t重复到s的长度时,它们具有尽可能多的共同字符。对于给定的示例,最佳输出为aaba
,因为它与目标字符串共有13个字符:
s: aabaaababbbbaaba
t: aabaaabaaabaaaba (aaba)
^^^^^^^^ ^ ^^^^
没有可能牛逼有更多。但是,对于aaaaaab
,有两个可能的输出:aaaa
和aaba
,每个输出与目标字符串共有6个字符:
s: aaaaaab
t: aaaaaaaa (aaaa)
^^^^^^
s: aaaaaab
t: aabaaaba (aaba)
^^ ^^^^
无论是aaaa
或aaba
可以输出,或者如果两个你想。注意,s永远不会重复;t的a
两个重复值中的尾部将被忽略。
测试用例
Inputs -> Valid outputs
1 a -> a
1 aa -> a
2 aa -> aa
1 ab -> a b
2 ab -> ab
1 abb -> b
2 abb -> ab bb
2 ababa -> ab
2 abcba -> ab
2 aabbbbb -> bb (ab is not a valid output here)
3 aababba -> aab abb
3 aababbaa -> aab
3 asdasfadf -> asf
3 asdasfadfsdf -> asf adf
2 abcdefghijklmnopqrstuvwxyzyx -> yx
2 supercalifragilisticexpialidocious -> ic ii
3 supercalifragilisticexpialidocious -> iri ili ioi
4 supercalifragilisticexpialidocious -> scii
5 supercalifragilisticexpialidocious -> iapic
2 eeeebaadbaecaebbbbbebbbbeecacebdccaecadbbbaceebedbbbddadebeddedbcedeaadcabdeccceccaeaadbbaecbbcbcbea -> bb be
10 bbbbacacbcedecdbbbdebdaedcecdabcebddbdcecebbeeaacdebdbebaebcecddadeeedbbdbbaeaaeebbedbeeaeedadeecbcd -> ebbbdbeece ebdbdbeece
20 aabbbaaabaaabaaaabbbbabbbbabbbabbbbbabbaaaababbbaababbbaababaaaabbaaabbaabbbabaaabbabbaaabbaaaaaaaba -> aabbbbaaabbabbbaabba
规则
- 您可以假定输入将永远是一个非空的小写字母字符串,并且是一个不大于字符串长度的正整数。
- 您可以采用任何标准格式和任意顺序输入。
- 您可以输出单个字符串,也可以以数组形式输出多个字符串,并以换行符或空格等分隔。
- 在任何相当现代的计算机上,每个测试用例的代码必须在不到1分钟的时间内完成。
- 这是代码高尔夫球,因此请使代码尽可能短。
2 abb -> ba
它的构建方式是(b)[ab]a
:(b)
忽略前导,[ab]
是匹配的。