題目描述
給定兩個字串str1和str2,再給定三個整數ic,dc和rc,分別代表插入、刪除和替換乙個字元的代價,請輸出將str1編輯成str2的最小代價。分析輸入:「abc」,「adc」,5,3,2 輸出:2
輸入:「abc」,「adc」,5,3,100 輸出:8
使用動態規劃進行解題,dp[i][j]表示str1的i 位置轉換成 str2的j 位置需要最小代價通過**
public
int mineditcost (string str1, string str2,
int ic,
int dc,
int rc)
//第一行肯定是新增,因為str2的字母數在逐漸增加
for(
int i=
1;i<=len2;i++
)for
(int i=
1;i<=len1;i++
)else}}
return data[len1]
[len2]
;}
最小編輯距離
dp i j 代表字串word1 0.i 1 與word2 0.j 1 的最小編輯距離。插入舉例 x ex vs y exp 前面的兩個ex都是相同,則編輯距離不變為0,x沒有第三個字元,這裡如果我們插入了乙個字元即可。dp i j dp i j 1 1 刪除舉例 x exp vs y ex 我故意...
最小編輯距離
當前狀態一定不能從後面的狀態推出 解dp題步驟 1.定義dp陣列 2.建立狀態轉移方程 3.確定初始狀態 4.驗證 迴圈順序 對於兩個字串a和b,我們需要進行插入 刪除和修改操作將a串變為b串,定義c0,c1,c2分別為三種操作的代價,請設計乙個高效演算法,求出將a串變為b串所需要的最少代價。給定兩...
NLP 最小編輯距離
最小編輯距離 編輯距離 edit distance 又稱 levenshtein距離,是指兩個字串之間,由乙個轉成另乙個所需的編輯操作次數。最小編輯距離,是指所需最小的編輯操作次數。動態規劃的核心思想是 將待求解的問題分解為若干個子問題 階段 按順序求解子階段,前一子問題的解,為後一子問題的求解提供...