#ATabc345c. [ABC345C] One Time Swap

[ABC345C] One Time Swap

题目描述

给定一个字符串 SS。请你求出对 SS 进行如下操作恰好一次后,可能得到的不同字符串的个数。

  • SS 的长度为 NN。选择满足 1i<jN1\leq i < j\leq N 的整数对 (i,j)(i, j),交换 SS 的第 ii 个字符和第 jj 个字符。

另外,在本题的限制条件下,可以保证一定能够进行上述操作。

输入格式

输入以以下格式从标准输入读入。

SS

输出格式

请输出对 SS 进行题目中所述操作恰好一次后,可能得到的不同字符串的个数。

样例 1

输入

abc

输出

3

样例 2

输入

aaaaa

输出

1

说明/提示

限制条件

  • SS 是由小写英文字母组成的字符串,长度满足 2S1062 \leq |S| \leq 10^6

样例解释 1

由于 SS 的长度为 33,满足 1i<j31\leq i < j\leq 3 的整数对 (i,j)(i, j)(1,2)(1,2)(1,3)(1,3)(2,3)(2,3)33 种。

  • 交换 SS 的第 11 个和第 22 个字符时,SS 变为 bac
  • 交换 SS 的第 11 个和第 33 个字符时,SS 变为 cba
  • 交换 SS 的第 22 个和第 33 个字符时,SS 变为 acb。 因此,对于 abc,操作后可能得到的字符串为 baccbaacb,共 33 种,所以输出 33

样例解释 2

无论交换哪两个字符,SS 始终为 aaaaa。因此,操作后可能得到的字符串只有 11 种。

由 ChatGPT 4.1 翻译