給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 。
你可以對乙個單詞進行如下三種操作:
插入乙個字元
刪除乙個字元
替換乙個字元
示例 1:
輸入:
word1 =
"horse"
, word2 =
"ros"
輸出:
3
解釋:
horse -> rorse (將 『h』 替換為 『r』)示例 2:rorse -> rose (刪除 『r』)
rose -> ros (刪除 『e』)
輸入:
word1 =
"intention"
, word2 =
"execution"
輸出:
5
解釋:
intention -> inention (刪除 『t』)思路:**:inention -> enention (將 『i』 替換為 『e』)
enention -> exention (將 『n』 替換為 『x』)
exention -> exection (將 『n』 替換為 『c』)
exection -> execution (插入 『u』)
class
solution
for(
int i =
1; i < n +
1; i++
)for
(int i =
1; i < m +
1; i++)}
return dp[m]
[n];}}
;
來搞一波動態規劃~~~ 力扣)72 編輯距離
難度在於定義最優解的結構。根據動態規劃思想容易定義出dp i j 表示word1的前i段與word2的前j段的編輯距離。最難想到的是最優解的結構,即替換,刪除和插入三種操作可以分別用dp i 1 j 1 1,dp i 1 j 1和dp i j 1 1表示。dp i j 代表 word1 到 i 位置...
LeetCode72編輯距離 dp
題目 開始以為不是dp 後來看了下題解 dp i j 代表word1截止到第i個字元轉換成word2截止到第j個字元需要幾步變換 if word1 i word2 j dp i j dp i 1 j 1 無需操作 else dp i j math.min math.min dp i j 1 dp i...
72 編輯距離
給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3解釋 horse rorse 將 h 替換為 r r...