859. Buddy Strings
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters in A so that the result equals B.
Example 1:
Input: A = "ab", B = "ba"
Output: true
Example 2:
Input: A = "ab", B = "ab"
Output: false
Example 3:
Input: A = "aa", B = "aa"
Output: true
Example 4:
Input: A = "aaaaaaabc", B = "aaaaaaacb"
Output: true
Example 5:
Input: A = "", B = "aa"
Output: false
Note:
0 <= A.length <= 20000
0 <= B.length <= 20000
A and B consist only of lowercase letters.
class Solution:
def buddyStrings(self, A, B):
"""
:type A: str
:type B: str
:rtype: bool
"""
if len(A)!=len(B):
return False
flag = 0
a1,a2,b1,b2 = '','','',''
for i in range(len(A)):
if A[i]==B[i]:
continue
if flag==0:
flag += 1
a1,b1 = A[i],B[i]
continue
if flag == 1:
flag += 1
a2,b2 = A[i],B[i]
continue
return False
if a1!=b2 or a2!=b1:
return False
if flag==0:
if len(A)==len(set(A)):
return False
return True