给定两个由小写字母构成的字符串 A
和 B
,只要我们可以通过交换 A
中的两个字母得到与 B
相等的结果,就返回 true
;否则返回 false
。
输入: A = "ab", B = "ba" 输出: true
输入: A = "ab", B = "ab" 输出: false
输入: A = "aa", B = "aa" 输出: true
输入: A = "aaaaaaabc", B = "aaaaaaacb" 输出: true
输入: A = "", B = "aa" 输出: false
0 <= A.length <= 20000
0 <= B.length <= 20000
A
和B
仅由小写字母构成。
class Solution:
def buddyStrings(self, A: str, B: str) -> bool:
if len(A) != len(B):
return False
if A == B and len(set(A)) != len(A):
return True
a, b = '', ''
for k, v in enumerate(A):
if v != B[k]:
a += v
b += B[k]
if len(a) > 2:
return False
return len(a) == 2 and a == b[::-1]