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