#2921. 回文字符串(palindrome)
回文字符串(palindrome)
说明
本题必须使用文件重定向,输入文件名palindrome.in,输出文件名palindrome.out
题目描述
作为一个新手,小明刚学了回文字符串,知道了一个字符串如果关于中心对称,则该字符串为回文字符串。
于是他自己就发明了属于他自己的回文字符串,即符合以下条件的字符串是回文字符串:
首先把字符串分割成个子串 ,即 (其中+为字符串拼接操作)。
分割成的子串数量需要大于1,且不能为空,即 且为非空子串。
对于所有的 有:要么与相等,要么与互为回文。(补充说明:字符串和 互为回文指倒过来与相等,反之亦然。举例说明:“”与""互为回文。)
给定一个字符串,请你帮助小明确定该字符串是否是在上述规则下的回文字符串。
如果是,他还想将字符串分成尽可能多的子串。
输入格式
一行一个字符串
输出格式
如果不能满足要求,输出一行一个字符串;否则,输出两行,第一行一个字符串 ,第二行一个整数表示最大的子串数量。
样例
abcababcba
YES
8
样例1解释
最多可以把字符串分成(a)(b)(c)(ab)(ab)(c)(b)(a)共8个子串。
goodluckhavefun
NO
样例2解释
很显然不存在满足题意的分割方案。
wahacodewaha
YES
3
样例3解释
最多可以把字符串分成(waha) (code)(waha)共3个子串。
数据范围
- 对于30%的数据, ISI;(其中 ISI为给定字符串的长度)
- 对于60%的数据,ISI
- 其中有30%的数据输入的字符串为回文字符串
- 对于100%的数据,ISl,保证输入的字符串全为小写字母
来源
山东CSP-X2023 小学组复赛