Toggle navigation
HUSTOJ
常见问答
讨论版
问题
来源/分类
状态
排名
竞赛&作业
Login
问题2466--CSP-X2021山东省小学组二轮第二题-回文字符串(palindrome)
2466: CSP-X2021山东省小学组二轮第二题-回文字符串(palindrome)
时间限制:
1
Sec
内存限制:
128 MB
提交:
36
解决:
14
[
提交
] [
状态
] [
讨论版
] [命题人:
]
题目描述
作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。
于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串S是回文字符串:
首先把字符串S 分割成n个子串 S1, S2....n,即 S1+ S2+...+Sn=S(其中+为字符串拼接操作)。
分割成的子串数量需要大于1,且不能为空,即n>1且S为非空子串。
举例说明:
“abc"和
"cba"互为回文。
“abc"和
"abc"互为回文。
给定一个字符串S,请你帮助小明确定该字符串是否是在上述规则下的回文字符串。如果是,他还想将字符串S分成尽可能多的子串。
输入
一个字符串S(长度>=1, <=10000,且都是小写字母)
输出
如果不能满足要求,输出一行一个字符串NO;
否则,输出两行,第一行一个字符串 YES,第二行一个整数n表示最大的子串数量。
样例输入
Copy
abcababcba
样例输出
Copy
YES 8
提示
样例1解释:
最多可以把字符串分成(a)(b)(c) (ab)(ab)(c) (b)(a)共8个子串。
样例2:
输入:goodluckhavefun
输出:NO
很显然不存在满足题意的分割方案。
样例3:
输入:wahacodewaha
输出:
YES
3
最多可以把字符串分成(waha) (code)(waha)共3个子串。
来源/分类
11字符串相关
20双指针算法
25初级算法-贪心