[题目描述]
作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。
于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串 S 是回文字符串:
首先把字符串 S 分割成 n 个子串 S,S2,...Sn,即 S+Sz+...+S,= S (其中+为字符串拼接操作)。
分割成的子串数量需要大于 1,且不能为空,即 n>1 且 S为非空子串。
对于所有的 ie[1;n] 有:要么 S;与 Sn-i1 相等,要么 S与S-i+1 互为回文。(补充说明:字符串 A和 B 互为回文指 A 倒过来与 B 等,反之亦然。举例说明:“abc”与"cba”互为回文。)
给定一个字符串 S,请你帮助小明确定该字符串是否是在上述规则下的回文字符串
如果是,他还想将字符串 S 分成尽可能多的子串。
[输入格式]
输入文件为 palindrome.in。
一行一个字符串 S。
[输出格式] 输出文件为palindrome.out。 如果不能满足要求,输出一行一个字符串 NO: 否则,输出两行,第一行一个字符串 YES第二行一个整数表示最大的子串数量
[样例1输入) abcababcba
[样例1输出] YES
[样1解] 最多可以把字符串分成 (a)(b)(c)(ab)(ab)(c)(b)(a) 共 8 个子
有没有大佬发一下题解? 能发的感谢一辈子