#4186. 一次性交换(One Time Swap)
一次性交换(One Time Swap)
题目描述
你得到一个字符串 。找出通过执行以下操作恰好一次可以得到的不同字符串的数量。
- 设 为 的长度。选择一对整数 ,满足 ,并交换 的第 个和第 个字符。
在本题的约束条件下,可以证明你总是可以执行这个操作。
输入格式
输入。
输出格式
输出通过在 上执行上述操作恰好一次可以得到的不同字符串的数量。
样例
abc
3
aaaaa
1
样例解释
【样例1说明】
的长度为 ,所以满足 的整数对 有三个:、 和 。
- 交换 的第 1 个和第 2 个字符得到
bac
。 - 交换 的第 1 个和第 3 个字符得到
cba
。 - 交换 的第 2 个和第 3 个字符得到
acb
。
因此,对 abc
进行操作可以得到三个字符串:bac
、cba
和 acb
,所以打印 。
【样例2说明】
交换任意两个字符都会使 保持为 aaaaa
。因此,只有一个字符串可以通过操作得到。
数据范围
,仅由小写英文字母组成。
来源
- AtCoder ABC345C