Python程式:檢查兩個字串的編輯距離是否為0或1
假設我們有兩個字串S和T,我們需要檢查它們的編輯距離是否為零或一。編輯操作可以定義為刪除一個字元、新增一個字元或用另一個字元替換一個字元。
因此,如果輸入類似於S = "hello",T = "hallo",則輸出將為True,因為這兩個字串的編輯距離為1。
為了解決這個問題,我們將遵循以下步驟:
- m := S的長度,n := T的長度
- i := 0,j := 0
- count := 0
- 如果 |m - n| > 1,則
- 返回 False
- 當 i < m 且 j < n 時,執行以下操作:
- 如果 S[i] 不等於 T[j],則
- 如果 count 等於 1,則
- 返回 False
- 如果 m < n,則
- j := j + 1
- 否則,如果 m > n,則
- i := i + 1
- 否則,
- i := i + 1,j := j + 1
- count := count + 1
- 如果 count 等於 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
廣告