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