-
Notifications
You must be signed in to change notification settings - Fork 17
/
one-edit-distance.py
31 lines (26 loc) · 974 Bytes
/
one-edit-distance.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution:
def isOneEditDistance(self, s: str, t: str) -> bool:
def is_one_edit_apart(left, right):
edits = 0
pos_left, pos_right = 0, 0
while pos_left < len(left) or pos_right < len(right):
if (
pos_left == len(left)
or pos_right == len(right)
or left[pos_left] != right[pos_right]
):
if edits > 0:
return False
edits += 1
if len(left) < len(right):
pos_right += 1
elif len(left) > len(right):
pos_left += 1
else:
pos_left += 1
pos_right += 1
else:
pos_left += 1
pos_right += 1
return edits == 1
return is_one_edit_apart(s, t)