文字列を考えるとl
、全てのパリンドロームのサブストリングを見つけるp
のl
(重複し、単一の文字列を含む)を。次に、すべての部分文字列をp
有効な回文に再配置します(複数の正解がある場合があります)。p
単一のパリンドロームに再配置できない場合は、プログラムに未定義の動作(エラー、スタックオーバーフロー、終了、ジョンドヴォルザークの首吊り/早すぎる殺人など)が含まれている可能性があります。
例
有効なテストケース
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>
ルール
- 入力語が回文自体である場合、入力として常に有効です。
- 返される部分文字列は1つだけで、有効な限り任意の部分文字列を選択できます。
- 入力に実行可能な出力がない場合、コードの動作が未定義になる可能性があります。
- 入力にはの間のASCII印刷可能文字のみが含まれます
0x20-0x7E
。 - これはcode-golfで、最小のバイト数が勝者です。
"abbccdd"
は間違って"bb"
い"dd"
ます。最後の2文字はである必要があります。