leetcode解題之編輯距離

2021-10-04 19:57:42 字數 1228 閱讀 9312

給你兩個單詞 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[i][j]表示word1的前i個字母替換為word2的前j個字母所用的最少操作,如果當前字母word1.charat(i-1)等於word2.charat(j-1)的話,dp[i][j]==dp[i-1][j-1],否則取dp[i][j-1]、dp[i-1][j]、dp[i-1][j-1]三者中最小的乙個加1,具體**如下:

class

solution

//初始化

for(

int i=

0;i1;i++

)for

(int j=

0;j1;j++

)for

(int i=

1;i1;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 ...