2016-08-29
給出兩個單詞word1和word2,計算出將word1 轉換為word2的最少操作次數。
你總共三種操作方法:
樣例 給出 work1="mart" 和 work2="karma"
返回 3
標籤: 動態規劃
解題:
此題為典型的動態規劃問題,可以按照一般解題思路解決。
首先定義這樣乙個函式——edit(i, j),它表示第乙個字串的長度為i的子串到第二個字串的長度為j的子串的編輯距離。
顯然可以有如下動態規劃公式:
實現**如下:
classsolution
for(int j=0;j)
for( int i=0;i)
else}}
return
dp[w1][w2];
}};
總結:遇到這類題目,可以用套路來解題。不同的是,需要根據不同的要求寫出某個子問題的解的表示式。有些可能不能直接一眼看出他們的關係,所以
需要自己通過具體舉例,模擬執行過程,最終歸納出結果。(多思考)
Lintcode 008 旋轉字串
lintcode 008 旋轉字串 題幹描述 給定乙個字串和乙個偏移量,根據偏移量旋轉字串 從左向右旋轉 樣例 對於字串 abcdefg offset 0 abcdefg offset 1 gabcdef offset 2 fgabcde offset 3 efgabcd 分析 我們思考可以發現給的...
LintCode 編輯距離
你總共三種操作方法 返回 3 思路 使用dp,先定義狀態 f i j 單詞1 的前i個 跟 單詞2 的前j個 的最短編輯距離。如果 a i b j 那麼f i,j f i 1,j 1 然後,再看有三種狀態 1.增加乙個 等價於 f i,j 1 2.刪除乙個 等價於 f i 1,j 3.修改乙個 等價...
lintcode練習 119 編輯距離
給出兩個單詞word1和word2,計算出將word1 轉換為word2的最少操作次數。你總共三種操作方法 給出 work1 mart 和 work2 karma 返回 3 當i 0時,dp 0,j j,j 0.len word2 表示word2需要刪除j位來使其與word1相同為空 同理當j 0,...