AT_abc456_c [ABC456C] Not Adjacent
题目描述
给定一个只包含 `a`、`b`、`c` 的字符串 $S$。
请计算 $S$ 中有多少个不为空的**子串**,满足没有两个相邻的字符相同,结果对 $998244353$ 取模。
子串的定义:$S$ 的一个**子串**是通过从 $S$ 的开头删除零个或多个字符以及从结尾删除零个或多个字符而得到的字符串。例如,`ab` 是 `abc` 的子串,但 `ac` 不是 `abc` 的子串。
输入格式
输入通过标准输入提供,格式如下:
> $S$
输出格式
输出答案。
说明/提示
### 样例解释 1
所有没有两个相邻字符相同的子串共有以下六个:
- `a`($S$ 的第 1 个到第 1 个字符)
- `b`($S$ 的第 2 个到第 2 个字符)
- `b`($S$ 的第 3 个到第 3 个字符)
- `c`($S$ 的第 4 个到第 4 个字符)
- `ab`($S$ 的第 1 个到第 2 个字符)
- `bc`($S$ 的第 3 个到第 4 个字符)
注意,如第 2 个和第 3 个的情况,两个子串只要起止位置不同,即使内容相同,也被视为不同的子串。
### 数据范围
- $S$ 是长度在 $1$ 到 $3 \times 10^5$ 之间的字符串,仅包含 `a`、`b`、`c`。
由 ChatGPT 5 翻译