Skip to content

Commit a438373

Browse files
committed
1 parent 70bd064 commit a438373

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

l33tcode/buddy-strings.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
class Solution:
2+
def buddyStrings(self, A: str, B: str) -> bool:
3+
if len(A) != len(B):
4+
return False
5+
6+
first, second = -1, -1
7+
replacements = 0
8+
pos = 0
9+
10+
while pos < len(A):
11+
if A[pos] != B[pos]:
12+
replacements += 1
13+
14+
if replacements > 2:
15+
return False
16+
17+
first, second = second, pos
18+
19+
pos += 1
20+
21+
if replacements > 2:
22+
return False
23+
elif replacements == 2:
24+
if (A[first], A[second]) != (B[second], B[first]):
25+
return False
26+
elif replacements == 1:
27+
return False
28+
else:
29+
return len(set(A)) != len(A)
30+
31+
return True

0 commit comments

Comments
 (0)