給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 。
你可以對乙個單詞進行如下三種操作:
示例 1:解決兩個字串的動規問題,一般都是用兩個指標指向字串末尾,一步一步向前推導。輸入: word1 = 「horse」, word2 = 「ros」
輸出: 3
解釋:horse -> rorse (將 『h』 替換為 『r』)
rorse -> rose (刪除 『r』)
rose -> ros (刪除 『e』)
示例 2:
輸入: word1 = 「intention」, word2 = 「execution」
輸出: 5
解釋:intention -> inention (刪除 『t』)
inention -> enention (將 『i』 替換為 『e』)
enention -> exention (將 『n』 替換為 『x』)
exention -> exection (將 『n』 替換為 『c』)
exection -> execution (插入 『u』)
狀態:字元的索引
選擇:增、刪、替、不操作
轉移:
重疊子問題用備忘錄解決,這裡建立dp table。base case就是word1和word2分別長度為0的情況。
public
intmindistance
(string word1, string word2)
for(
int i =
1; i <= n; i++
)for
(int i =
1; i <= m; i++
)else}}
return dp[m]
[n];
}public
intmin
(int a,
int b,
int c)
72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3解釋 horse rorse 將 h 替換為 r r...
72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r ...
72 編輯距離
題目 給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為...