#aBC345C. [ABC345C] One Time Swap

[ABC345C] One Time Swap

AT_abc345_c [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

输入 #1

abc

输出 #1

3

输入输出样例 #2

输入 #2

aaaaa

输出 #2

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