給定兩個單詞 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』)
思路:
動態規劃 選擇最小的來做,思路是先根據二維矩陣來推。
但是沒有想到math.min 選擇3者最小的。
先定義狀態,再找出我們的已有的選擇,能不能用自然語言來描述??
dp[i][j] ===》 選擇(刪除,替換,增加)====>根據選擇來更新狀態
dp[i][j] = math.min(刪除,替換,增加)====>
// 增加,刪除,替換選最小
dp[i][j] = math.min(dp[i-1][j-1],math.min(dp[i-1][j],dp[i][j-1])) +1;
class
solution
for(
int j =
1;j < len2+
1;j++
)for
(int i =
1;i < len1+
1;i++
)else}}
return dp[len1]
[len2];}
}
Leetcode 72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r ...
leetcode 72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3解釋 horse rorse 將 h 替換為 r r...
LeetCode72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r rorse rose 刪除 r rose ...