题库/CSPX0002

#CSPX0002. [CSP-X 2023 山东] 回文字符串

    传统题 难度: 提高 标签>字符串动态规划CSP-X最长公共前缀
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

CSPX0002 · [CSP-X 2023 山东] 回文字符串

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

作为一个新手,小明刚学了回文字符串,知道了关于中心对称的字符串是回文字符串。他又定义了下面一种规则。

把字符串 SS 分割成 nn 个非空子串 S1,S2,…,SnS_1,S_2,\ldots,S_n,满足 S1+S2+⋯+Sn=SS_1+S_2+\cdots+S_n=S,其中 ++ 表示拼接。子串个数必须大于1。

对于所有 i∈[1,n]i\in[1,n],要求 SiS_i 与 Sn−i+1S_{n-i+1} 相等,或者两者互为反转。互为反转指将一个字符串倒过来后与另一个相等,例如 abc 与 cba。

给定 SS,判断能否按照上述规则分割;如果可以,求最多能分成多少个子串。

输入格式

一行一个字符串 SS。

输出格式

若不能满足要求,输出一行 NO。否则输出两行,第一行 YES,第二行一个整数,表示最大的子串数量。

abcababcba
YES
8
goodluckhavefun
NO
wahacodewaha
YES
3

说明与数据范围

样例1:可分为 (a)(b)(c)(ab)(ab)(c)(b)(a),共8个子串。

样例2:不存在满足要求的分割。

样例3:可分为 (waha)(code)(waha),共3个子串。

30%的数据:1≤∣S∣≤101\le |S|\le10;60%的数据:1≤∣S∣≤10001\le |S|\le1000;其中有30%的数据中输入串为通常意义的回文字符串。

100%的数据:1≤∣S∣≤100001\le |S|\le10000,字符串只含小写字母。

题目信息

#857
—

暂无提交记录

练习难度 提高
时间限制
2000ms
内存限制
512MiB

题目标签

暂无标签
上传者