递归地从子串中构建回文串

Rust Hard functions

任务 «递归地从子串中构建回文串»

给定一个由小写拉丁字母组成的字符串S。需要递归地(使用函数)将原始字符串分割成最少数量的回文子串(每个子串必须是回文),并通过空格输出它们。如果无法分割(例如,字符串为空),则输出"NO"。限制条件:S的长度为1到1000个字符。保证答案存在。

输入格式

一行字符串 S (1 ≤ |S| ≤ 1000)。

输出格式

一个包含回文子串的字符串,子串之间用空格分隔。如果输入字符串为空,则输出"NO"。

示例

示例 1

输入
racecar
输出
racecar

示例 2

输入
aab
输出
aa b
main.rs