在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
    猜你喜欢