編輯距離 LeetCode72

2021-10-05 15:50:24 字數 1145 閱讀 4459

給你兩個單詞 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')

dp陣列含義:dp[i][j]代表 word1 到i位置轉換成 word2 到j位置需要最少步數。注意:這裡ij指的是長度。

狀態轉移方程:

初始條件:如果word1為空,那麼空字串轉移到word2,就要不斷插入,word2有多少個字元就要插入多少步,因此dp[0][j]=j;如果word2為空,那麼word1轉移到空字串,就要不斷刪除,word1有多少個字元就要刪除多少步,因此dp[i][0]=i

參考題解:powcai的題解

**如下:

class

solution

for(

int j =

1; j <= len2; j++

)for

(int i =

1; i <= len1; 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 ...