AT_abc433_c [ABC433C] 1122 Substring 2
题目描述
给定一个只包含数字的字符串 $S$。
如果一个字符串 $T$ 满足所有下述条件,则称其为 **1122-字符串**(定义与问题 F 相同)。
- $T$ 是一个非空的、只由数字组成的字符串。
- $|T|$ 是偶数,这里 $|T|$ 表示字符串 $T$ 的长度。
- $T$ 的第 $1$ 个至第 $\frac{|T|}{2}$ 个字符都相同,且都是同一个数字。
- $T$ 的第 $(\frac{|T|}{2} + 1)$ 个至第 $|T|$ 个字符也都相同,且都是另一个数字。
- $T$ 的第 $1$ 个字符对应的数字加 $1$ 就等于 $T$ 的第 $|T|$ 个字符对应的数字。
例如,`1122`、`01` 和 `444555` 都是 1122-字符串,而 `1222` 和 `90` 不是 1122-字符串。
请你计算 $S$ 有多少个**子串**是 1122-字符串。
如果两个子串出现在不同位置,即使内容相同,也应分别统计。
输入格式
输入一行,包含一个字符串 $S$。
输出格式
输出 $S$ 的所有非空且为 1122-字符串的子串的个数。
说明/提示
### 样例解释 1
符合条件的子串有 $2$ 个:
- $S$ 的第 $2$ 到第 $3$ 个字符组成的子串 `12`
- $S$ 的第 $1$ 到第 $4$ 个字符组成的子串 `1122`
因此输出 $2$。
### 样例解释 2
注意,如果两个子串出现在不同的位置,即使内容相同,也要分别统计。
### 样例解释 3
有可能不存在符合条件的 1122-字符串子串。
### 数据范围
- $S$ 是一个长度为 $1$ 到 $10^6$ 的数字字符串。
由 ChatGPT 5 翻译