AT_agc019_b [AGC019B] Reverse and Compare

题目描述

有一个由小写英文字母组成的字符串 $A = A_1A_2...A_n$。 你可以选择任意满足 $1 \leq i \leq j \leq n$ 的两个下标 $i, j$,将 $A$ 的某个子串 $A_iA_{i+1}...A_j$ 进行反转。 这个操作最多只能执行一次。 通过这个操作可以得到多少种不同的字符串?

输入格式

输入将按照以下格式从标准输入读入。 > $A$

输出格式

输出通过至多一次对 $A$ 的任意子串反转操作能得到的不同字符串的个数。

说明/提示

## 限制条件 - $1 \leq |A| \leq 200,\!000$ - $A$ 仅由小写英文字母组成。 ## 样例解释 1 可以得到的字符串有 `aatt`(什么都不做)、`atat`(反转 $A[2..3]$)、`atta`(反转 $A[2..4]$)、`ttaa`(反转 $A[1..4]$)、`taat`(反转 $A[1..3]$)。 ## 样例解释 2 无论反转哪个部分子串,最终结果都是 `xxxxxxxxxx`。 由 ChatGPT 5 翻译