LeetCode 72 編輯距離

2021-10-04 09:33:05 字數 1276 閱讀 1819

給定兩個單詞 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』)

一道典型的二維動態規劃題,每次可以插入、刪除或修改乙個字元。所以,列出動態規劃二維矩陣:專案#

ros#

0123

h112

3o22

12r3

222s

4332

e544

3計算的過程中,我們可以推斷出狀態轉移方程如下:

當兩個字串最後乙個字元相同時:

dp[i][j] = 1 + min(dp[i-1][j] , dp[i][j-1],d[i-1][j-1]-1)

當兩個字元最後乙個字元不同時:

dp[i][j] = 1 + min(dp[i-1][j] , dp[i][j-1],d[i-1][j-1])

public

intmindistance

(string word1, string word2)

else}}

for(

int[

] row:dp) system.out.

println

(arrays.

tostring

(row));

return dp[n]

[m];

}

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 ...