給定兩個單詞 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')定義狀態dp[i][j]表示word1的前i個字串通過三種操作變為word2的前j個字串所使用的最少運算元。這裡編號是從1開始。容易得到邊界條件inention -> enention (將 'i' 替換為 'e')
enention -> exention (將 'n' 替換為 'x')
exention -> exection (將 'n' 替換為 'c')
exection -> execution (插入 'u')
dp[i][0] = i 直接刪去word1i個單詞
dp[0][j] = j 像word1新增j個單詞
轉移方程
dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1],d[i-1][j-1] + 1 if word1[i-1]!=word2[j-1])
class solution
}return dp[word1.length()][word2.length()];
}}
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 ...