在Python中检查两个字符串是否相距0或1编辑距离的程序
假设我们有两个字符串S和T,我们必须检查它们的编辑距离是否为一或零。可以将编辑操作定义为删除字符,添加字符或用另一个字符替换字符。
因此,如果输入类似于S=“hello”,T=“hallo”,则输出将为True,因为这两个字符串的编辑距离为1。
为了解决这个问题,我们将遵循以下步骤-
m:=S的大小,n:=T的大小
i:=0,j:=0
计数:=0
如果|m-n|>1,则
返回False
当我<m和j<n时
i:=i+1,j:=j+1
如果计数等于1,则
如果m<n,则
否则当m>n时
除此以外,
数:=数+1
返回False
j:=j+1
我:=我+1
i:=i+1,j:=j+1
如果S[i]与T[j]不同,则
除此以外,
返回True
让我们看下面的实现以更好地理解-
示例
class Solution: def solve(self, S, T): m, n = len(S), len(T) i, j = 0, 0 count = 0 if abs(m - n) > 1: return False while i < m and j < n: if S[i] != T[j]: if count == 1: return False if m < n: j += 1 elif m > n: i += 1 else: i += 1 j += 1 count += 1 else: i += 1 j += 1 return True ob = Solution()S = "hello" T = "hallo" print(ob.solve(S, T))
输入值
"hello", "hallo"
输出结果
True