最短編輯距離

最短編輯距離(Shortest Edit Distance),也稱為編輯距離(Edit Distance),是指將一個字串轉換成另一個字串所需要的最小編輯操作次數。編輯操作通常包括插入一個字元、刪除一個字元或替換一個字元。最短編輯距離可以用來測量兩個字串的相似度,編輯距離越小,兩個字串就越相似。

例如,考慮字串 "kitten" 和 "sitting"。要將 "kitten" 轉換成 "sitting",我們需要進行以下編輯操作:

  1. 將 "k" 替換為 "s"(替換操作)
  2. 插入 "i"(插入操作)
  3. 插入 "g"(插入操作)
  4. 插入 "t"(插入操作)

總共需要進行 4 次編輯操作。因此,"kitten" 和 "sitting" 的編輯距離是 4。

最短編輯距離可以用Dynamic Programming(動態規劃)來計算,這是一個著名的計算編輯距離的算法,稱為Levenshtein Distance。這個算法的基本思想是,我們可以將計算整個字串的編輯距離問題分解為計運算元字串的編輯距離問題。通過這樣的方法,我們可以有效地計算出最短編輯距離。