字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。
很简单的一道中等题。
class Solution:
def oneEditAway(self, first: str, second: str) -> bool:
num1 = len(first)
num2 = len(second)
if abs(num1 - num2) > 1:
return False
if first == second:
return True
for i in range(min(num1, num2)):
if first[i] == second[i]:
pass
else:
# 删除/插入是否可行
if num1 < num2:
if first[i:] == second[i+1:]:
return True
if num1 > num2:
if first[i+1:] == second[i:]:
return True
# 替换是否可行
if first[i+1:] == second[i+1:]:
return True
return False
return True