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 翻译