最小編輯代價

2021-10-10 20:48:14 字數 923 閱讀 6695

給定兩個字串str1和str2,再給定三個整數ic,dc和rc,分別代表插入、刪除和替換乙個字元的代價,請輸出將str1編輯成str2的最小代價。

輸出三行,第一行和第二行均為一行字串,分別表示兩個字串str1,str2。\left( 1\leq length(str1),length(str2) \leq 5000 \right)(1≤length(str1),length(str2)≤5000)。第三行為三個正整數,代表ic,dc和rc。(1<=ic<=10000、1<=dc<=10000、1<=rc<=10000)
輸出乙個整數,表示編輯的最小代價。
示例1

abc

adc5 3 2

2
示例2

abc

adc5 3 100

8
示例3

abc

abc5 3 2

0
#include#include#includeusing namespace std;

int mincost(string s1, string s2, int ic, int dc, int rc)

for(int i=1;i<=len2;++i)

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

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

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

return dp[len1][len2];

}int main(){

string str1, str2;

cin>>str1>>str2;

int ic, dc, rc;

cin>>ic>>dc>>rc;

cout《空間壓縮

待填

最小編輯代價

對於兩個字串a和b,我們需要進行插入 刪除和修改操作將a串變為b串,定義c0,c1,c2分別為三種操作的代價,請設計乙個高效演算法,求出將a串變為b串所需要的最少代價。給定兩個字串a和b,及它們的長度和三種操作代價,請返回將a串變為b串所需要的最小代價。保證兩串長度均小於等於300,且三種代價值均小...

最小編輯代價(動態規劃)

在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 ...