72 編輯距離

2021-10-13 05:03:20 字數 1334 閱讀 3040

給你兩個單詞word1word2,請你計算出將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')

思路

1、狀態定義:

dp[i][j]表示word1的前i個字母轉換成word2的前j個字母所使用的最少操作。

2、狀態轉移:

i指向word1j指向word2

若當前字母相同,則dp[i][j] = dp[i - 1][j - 1];

否則取增刪替三個操作的最小值 + 1, 即:

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

**實現

class solution 

for (int j = 0; j <= len2; j++)

for (int i = 1; i <= len1; i++) else }}

return dp[len1][len2];

}}

72 編輯距離

給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3解釋 horse rorse 將 h 替換為 r r...

72 編輯距離

給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為 r ...

72 編輯距離

題目 給定兩個單詞 word1 和 word2,計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h 替換為...