Problem B: 回文字符串(palindrome)
Memory Limit:128 MB
Time Limit:1.000 S
Submit:5
Solved:1
Description
作为一个新手,小码刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。
于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串S是回文字符串:
首先把字符串S分割成n个子串S1,S2,...Sn,即S1+S2+...+Sn=S(其中+为字符串拼接操作)。
分割成的子串数量需要大于1,且不能为空,即n>1且Si为非空子串。
对于所有的i属于[1,n],要么Si与 Sn-i+1相等,要么 Si与 Sn-i+1 互为回文。(补充说明:字符串A和B互为回文指A过来与B相等,反之亦然。举例说明:“abc”与cba”互为回文。)
给定一个字符串S,请你帮助小码确定该字符串是否是在上述规则下的回文字符串。
如果是,他还想将字符串S分成尽可能多的子串。
于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串S是回文字符串:
首先把字符串S分割成n个子串S1,S2,...Sn,即S1+S2+...+Sn=S(其中+为字符串拼接操作)。
分割成的子串数量需要大于1,且不能为空,即n>1且Si为非空子串。
对于所有的i属于[1,n],要么Si与 Sn-i+1相等,要么 Si与 Sn-i+1 互为回文。(补充说明:字符串A和B互为回文指A过来与B相等,反之亦然。举例说明:“abc”与cba”互为回文。)
给定一个字符串S,请你帮助小码确定该字符串是否是在上述规则下的回文字符串。
如果是,他还想将字符串S分成尽可能多的子串。
Input
一行一个字符串 S。
Output
如果不能满足要求,输出一行一个字符串 NO:
否则,输出一个整数n表示最大的子串数量。
否则,输出一个整数n表示最大的子串数量。
Sample Input Copy
abcababcba
Sample Output Copy
8