AT_code_formula_2014_qualB_c 仲良し文字列
题目描述
给定字符串 $A$,如果可以通过恰好 $3$ 次交换操作将其变换为字符串 $B$,则称这两个字符串 $A$ 和 $B$ 是“仲良し字符串”。
交换操作指的是将字符串中任意两个不同位置的字符进行互换。例如,对于字符串 `abc`,可以交换 `a` 和 `c`,得到 `cba`。
对于像 `aa` 这样的字符串,允许交换第 $1$ 个 `a` 和第 $2$ 个 `a`,但不能指定同一个位置的字符进行交换。
给定字符串 $A$ 和 $B$,请判断它们是否为“仲良し字符串”。
输入格式
输入通过标准输入给出,格式如下:
> $A$ $B$
- 第 $1$ 行给出字符串 $A$,满足 $2 \leq |A| \leq 1000$。
- 第 $2$ 行给出字符串 $B$,满足 $|B| = |A|$。
- 保证 $A$ 和 $B$ 均由小写英文字母组成。
输出格式
如果给定的两个字符串是“仲良し字符串”,输出 `YES`,否则输出 `NO`。输出末尾需换行。
说明/提示
### 样例解释 1
首先,将字符串 $A$ 的 `abcdef` 中的 `a` 和 `f` 交换,得到 `fbcdea`。接着交换 `b` 和 `e`,得到 `fecdba`。最后交换 `c` 和 `d`,得到 `fedcba`,与字符串 $B$ 相同。因此,这两个字符串是“仲良し字符串”,输出 `YES`。
### 样例解释 2
即使使用的字符种类相同,也存在无法通过 $3$ 次交换变为相同字符串的情况。
### 样例解释 3
只有一种交换方式,连续交换 $3$ 次后会变成 `tn`。因此,虽然两个字符串相同,但不是“仲良し字符串”。
### 样例解释 4
首先交换第 $1$ 个和第 $2$ 个字符,得到 `qpqq`。接着交换第 $3$ 个和第 $4$ 个字符,得到 `qpqq`。此时虽然交换的是相同的字符,但位置不同,所以没有问题。最后交换第 $1$ 个和第 $2$ 个字符,得到 `pqqq`。
### 样例解释 5
请注意,可能会给出较长的字符串。
由 ChatGPT 4.1 翻译