#codeformula2014qualBc. [code_formula_2014_qualB_c]仲良し文字列
[code_formula_2014_qualB_c]仲良し文字列
问题描述
(21:13 追記) 由于测试中包含了一个|A|=|B|=1的情况,因此进行重新评测。请注意,这个情况不会影响输出"NO"的程序。
给定字符串A,通过准确交换字符串A中的字符3次,可以将其转换为字符串B。如果两个字符串A和B满足这个条件,则称它们为亲密字符串。
交换是指交换字符串中的两个字符。例如,对于字符串abc
,可以交换a
和c
,将其转换为cba
。
对于像aa
这样的字符串,可以交换第一个a
和第二个a
,但不能指定相同位置的字符。
给定字符串A和B,请确定它们是否是亲密字符串。
输入
输入以以下格式从标准输入中提供:
- 第1行为字符串A(2≤|A|≤1000)。
- 第2行为字符串B(|B|=|A|)。
- A和B都保证只包含小写字母。
输出
如果给定的两个字符串是亲密字符串,则输出YES
,否则输出NO
。在输出末尾添加一个换行符。
示例1
abcdef
fedcba
输出例1
YES
首先,将字符串A中的a
和f
交换,得到fbcdea
。
然后,将b
和e
交换,得到fecdba
。
最后,将c
和d
交换,得到fedcba
,与字符串B相同。
因此,这两个字符串是亲密字符串,输出YES
。
示例2
abababab
babababa
输出例2
NO
存在一种情况,即使使用相同数量的字符进行3次交换也无法得到相同的字符串。
示例3
nt
nt
输出例3
NO
只有一种交换的方式,并且重复3次交换后得到tn
。因此,尽管是相同的两个字符串,它们不是亲密字符串。
示例4
pqqq
pqqq
输出例4
YES
首先,交换第一个字符和第二个字符,得到qpqq
。然后,交换第三个字符和第四个字符,得到qpqq
。在这个过程中,选择了相同的字符,但位置不同,所以没有问题。最后,交换第一个字符和第二个字符,得到pqqq
。
示例5
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvxyzw
abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz
输出例5
YES
请注意,可能会给出较长的字符串。
示例6
abcdef
ghijkl
输出例6
NO
来源名称
Code Formula 2014预选B