本题可以使用模拟算法,核心是统计 s1 和 s2 中字符不同的位置。
设不同的位置个数为 cnt:
给定两个长度相等的字符串 s1 和 s2。
一次字符串交换操作定义为:选择某一个字符串中的两个下标(可以相同),并交换这两个下标对应的字符。
请判断是否可以对其中一个字符串执行最多一次字符串交换,使得 s1 和 s2 相等。
如果可以,输出 true;否则,输出 false。
输入共两行。
第一行输入一个字符串 s1。
第二行输入一个字符串 s2。
输出一个布尔值。
如果可以对其中一个字符串执行最多一次字符串交换,使得 s1 和 s2 相等,输出 true;否则,输出 false。
bank
kanb
true
交换 s2 中的第一个和最后一个字符,可以得到 "bank"。
attack
defend
false
一次字符串交换无法使两个字符串相等。
kelb
kelb
true
两个字符串已经相等,所以不需要进行字符串交换。
abcd
dcba
false