最小編輯代價 動態規劃

2021-08-07 16:01:20 字數 631 閱讀 4610

對於兩個字串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...