#B. [C++三级 模拟题] 小洛的字符串分割

    Type: Default 1000ms 256MiB

[C++三级 模拟题] 小洛的字符串分割

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

对于一个字符串 SS,小洛定义它为 回文 的,当且仅当字符串 SS 从左往右读和从右往左读一样,例如 abcba\tt abcba 是回文的,而 abcca\tt abcca 不是。

小洛现在有一个字符串 SS,他想将这个字符串分为若干段,段长度分别为 1,2,3,1,2,3,\dots。具体而言,他会先将第一个字符拿出来作为字符串 S1S_1,再将第 2,32,3 个字符拿出来作为 S2S_2,再将第 4,5,64,5,6 个字符拿出来作为 S3S_3,以此类推……最后若还有多余的字符,则单独作为一段。

例如说,对于字符串 aaababcaacd\tt aaababcaacd,会被分为如下的五个字符串:

  • S1=aS_1=\tt a
  • S2=aaS_2=\tt aa
  • S3=babS_3=\tt bab
  • S4=caacS_4=\tt caac
  • S5=dS_5=\tt d

字符串 aaababcaacd\tt aaababcaacd 分割出的 55 个字符串都是回文的。

小洛想要知道,对于读入的字符串 SS,这些被分割出来的字符串,有多少个是回文的呢?

输入格式

输入一行,一个字符串 SS

输出格式

输出一个整数,表示答案。

输入输出样例 #1

输入 #1

aaababcaacd

输出 #1

5

输入输出样例 #2

输入 #2

abacdcaaba

输出 #2

2

说明/提示

【样例解释】

  • 对于第 11 组样例,已经在题面中进行表述;
  • 对于第 22 组样例,S1=aS_1=\tt aS2=baS_2=\tt baS3=cdcS_3=\tt cdcS4=aabaS_4=\tt aaba,其中 S1S_1S3S_3 为回文字符串。

【数据范围】

假定记号 S|S| 表示字符串 SS 的长度。

  • 对于 10%10\% 的数据,字符串至多包含一种字母;
  • 对于 30%30\% 的数据,字符串至多包含两种字母;
  • 对于 70%70\% 的数据,S1000|S|\leq 1000
  • 对于所有数据,1S1061 \leq |S| \leq 10^6,字符串仅包含英语小写字母。

原题

B3997 [洛谷 202406GESP 模拟 三级] 小洛的字符串分割 - 洛谷

202509C++三级模拟题

Not Claimed
Status
Done
Problem
2
Open Since
2025-9-25 0:00
Deadline
2025-10-3 23:59
Extension
24 hour(s)