给定一个字符串l
,找到所有回文子p
的l
(包括重复和单一字符串)。接下来,将所有子字符串重新排列p
为有效回文(可能有多个正确答案)。如果不可能重新排列p
为单个回文,则您的程序可能具有不确定的行为(错误,堆栈溢出,退出,John Dvorak的挂起/过早杀害等)。
例子
有效的测试用例
l = anaa
p = ['a', 'n', 'a', 'a', 'aa', 'ana']
result = anaaaaana or aanaaanaa or aaananaaa
l = 1213235
p = ['1', '2', '1', '3', '2', '3', '5', '121', '323']
result = 1213235323121
l = racecar
p = ['r', 'a', 'c', 'e', 'c', 'a', 'r', 'cec', 'aceca', 'racecar']
result = racecarcecaacecracecar (there are others)
l = 11233
p = ['1', '11', '1', '2', '3', '33', '3']
result = 113323311 or 331121133
l = abbccdd
p = ['a', 'b', 'bb', 'b', 'c', 'cc', 'c', 'd', 'dd', 'd']
result = bbccddaddccbb or ccbbddaddbbcc or (etc...)
l = a
p = ['a']
result = a
无效的测试用例(不可能)
l = 123456789
p = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
result = <not possible, behavior undefined>
l = hjjkl
p = ['h', 'j', 'jj', 'j', 'k', 'l']
result = <not possible, behavior undefined>
l = xjmjj
p = ['x', 'j', 'jmj', 'm', 'j', 'jj', 'j']
result = <not possible, behavior undefined>
规则
- 如果输入单词本身是回文,则输入将始终有效。
- 仅应返回一个子字符串,您选择的子字符串只要有效就可以是任意的。
- 如果输入没有可行的输出,则您的代码可能具有未定义的行为。
- 输入内容之间仅包含ASCII可打印字符
0x20-0x7E
。 - 这是代码高尔夫球,最低字节数是获胜者。
"abbccdd"
是错误的:后两个字母应该是"bb"
,而不是"dd"
。