對於兩個字串a和b,我們需要進行插入、刪除和修改操作將a串變為b串,定義c0,c1,c2分別為三種操作的代價
給定三種操作代價,字串a和b,求出將a串變為b串所需要的最少代價。
保證兩串長度均小於等於300,且三種代價值均小於等於100。
測試樣例:
5 3 100
abc
adc
返回:8
public
class main
for (int i=0;i1;i++)
for (int i=1;i1;i++)else}}
system.out.println(dp[n][m]);
//空間改善,翻滾法
int dp2 = new
int[n + 1][2];
for(int i = 0; i <= n; i++)
for(int j = 1; j <= m; j++) else
}for(int i = 0; i <= n; i++)
}system.out.println(dp2[n][1]);
}}
最小編輯代價(動態規劃)
在nowcoder上的題目,原題如下 對於兩個字串a和b,我們需要進行插入 刪除和修改操作將a串變為b串,定義c0,c1,c2分別為三種操作的代價,請設計乙個高效演算法,求出將a串變為b串所需要的最少代價。給定兩個字串a和b,及它們的長度和三種操作代價,請返回將a串變為b串所需要的最小代價。保證兩串...
最小編輯代價(動態規劃)
實現 對於不同的要求,主要是找到求dp i j 的規律。include include include include include include include using namespace std define max length 50 字串的最大長度 求出dp i j 代表從str1 ...
最小編輯代價 動態規劃
題目描述 給定兩個字串str1和str2,再給定三個整數ic,dc和rc,分別代表插入 刪除和替換乙個字元的代價,請輸出將str1編輯成str2的最小代價。示例1輸入 abc adc 5,3,2 返回值 2 示例2輸入 abc adc 5,3,100 返回值 8 備註 1 str1 str2 500...