AT_abc468_d [ABC468D] Pre-Palindrome
题目描述
如果一个仅由小写英文字母组成的字符串满足以下条件,则称其为**好字符串**:
- 只需将至多一个字符替换为任意字符,就可以使其变为回文串。
例如,`a`、`iwai` 和 `abcdcza` 都是好字符串,而 `abcd` 和 `atcoder` 不是好字符串。特别地,回文串本身也是好字符串。
给定一个由小写英文字母组成的字符串 $S$。
请计算 $S$ 的非空子串(连续子序列)中,有多少个是好字符串。
来自 $S$ 不同位置的两个子串,即使内容相同,也要分别计数。
**什么是子串?**
$S$ 的**子串**是通过删除 $S$ 开头的零个或多个字符和结尾的零个或多个字符得到的字符串。
例如,`ab` 是 `abc` 的子串,但 `ac` 不是 `abc` 的子串。
输入格式
输入从标准输入读取,格式如下:
> $S$
输出格式
输出答案。
说明/提示
### 样例解释 1
从 $S$ 的第 $2$ 个字符到第 $3$ 个字符的子串 `ba` 和第 $1$ 个字符到第 $5$ 个字符的子串 `ababa` 都是好字符串。
在 $15$ 个子串中,属于好字符串的有 $13$ 个,除了从第 $1$ 个字符到第 $4$ 个字符的 `abab` 和从第 $2$ 个字符到第 $5$ 个字符的 `baba`。
### 数据范围
- $S$ 是一个长度在 $1$ 到 $10^4$ 之间的字符串,仅由小写英文字母组成。
由 ChatGPT 5 翻译