4146: One Time Swap
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:12
解决:0
题目描述
# One Time Swap
### 内存
1024MB
### 时间
2S
## 题目描述
配套书籍购买链接:https://item.jd.com/10127270863925.html
你得到一个字符串 $S$。找出通过执行以下操作**恰好一次**可以得到的不同字符串的数量。
- 设 $N$ 为 $S$ 的长度。选择一对整数 $(i,j)$,满足 $1 \leq i < j \leq N$,并交换 $S$ 的第 $i$ 个和第 $j$ 个字符。
在本题的约束条件下,可以证明你总是可以执行这个操作。
## 输入格式
输入$S$。
## 输出格式
输出通过在 $S$ 上执行上述操作恰好一次可以得到的不同字符串的数量。
## 输入输出样例
### 输入样例1
```
abc
```
### 输出样例1
```
3
```
### 输入样例2
```
aaaaa
```
### 输出样例2
```
1
```
## 数据范围与提示
【样例1说明】
$S$ 的长度为 $3$,所以满足 $1 \leq i < j \leq 3$ 的整数对 $(i,j)$ 有三个:$(1,2)$、$(1,3)$ 和 $(2,3)$。
- 交换 $S$ 的第 1 个和第 2 个字符得到 `bac`。
- 交换 $S$ 的第 1 个和第 3 个字符得到 `cba`。
- 交换 $S$ 的第 2 个和第 3 个字符得到 `acb`。
因此,对 `abc` 进行操作可以得到三个字符串:`bac`、`cba` 和 `acb`,所以打印 $3$。
【样例2说明】
交换任意两个字符都会使 $S$ 保持为 `aaaaa`。因此,只有一个字符串可以通过操作得到。
【数据范围】
$2 \le S \le 10^6$,$S$仅由小写英文字母组成。
## 题目来源
ABC345C