Leetcode 889 Solution
This article provides solution to leetcode question 889 (buddy-strings)
Access this page by simply typing in "lcs 889" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/buddy-strings
Solution
class Solution(object):
def buddyStrings(self, A, B):
"""
:type A: str
:type B: str
:rtype: bool
"""
if len(A) != len(B):
return False
cnt = collections.defaultdict(int)
s1 = set()
s2 = set()
for ch1, ch2 in zip(A, B):
if ch1 != ch2:
s1.add(ch1)
s2.add(ch2)
cnt[ch1] += 1
if len(s1) == 0:
return True if [v for v in cnt.values() if v > 1] else False
elif len(s1) == 2:
return s1 == s2
else:
return False