動態規劃
dp[i][j]表示word1的前i個字元傳換成word2的前j個字元所需的最少運算元。
1.在word1和word2前添#,便於初始化。
2.
if(word1[i]==word2[j]))
:新添的一位並沒有影響,不需要新的操作。3.
if(word1[i]!=word2[j]))
:替換、插入、刪除三選一。
替換
:dp[i-1][j-1]+1,只需替換最後一位。
插入
:dp[i][j-1]+1,word[i]–>word2[j-1] 在末尾插入word2[j]。
刪除
:dp[i-1][j]+1,將word1[i]直接刪去,word[i-1]—>word2[j]。
class
solution
}return dp[word1.
length()
-1][word2.
length()
-1];
}};
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 ...