P2758 編輯距離

2021-07-31 05:19:04 字數 1274 閱讀 3438

p2758 編輯距離

設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種:

1、刪除乙個字元;

2、插入乙個字元;

3、將乙個字元改為另乙個字元;

!皆為小寫字母!

輸入格式:

第一行為字串a;第二行為字串b;字串a和b的長度均小於2000。

輸出格式:

只有乙個正整數,為最少字元操作次數。

輸入樣例#1:

sfdqxbw                  

gfdgw

輸出樣例#1:

4

varf:array[0.

.2000,0.

.2000

]of longint;//f[i,j]為第i個數到第j個數的最短的編輯距離

s,ss:ansistring;

i,j,k,len,len2:longint;

function min

(a,b:longint):longint

;begin

ifa<

b then exit

(a);

exit

(b);

end;

begin

readln

(s);

readln(ss);

len:=length(s);

len2:=length(ss);

fori:=

1to len

do f[i,

0]:=i;//不改任何東西最短距離就是它自己咯

fori:=

1to len2

dof[

0,i]:=i;//同上

fori:=

1to len

dofor

j:=1

to len2

doif

s[i]=ss[j] then f[i,j]:=f[i

-1,j

-1]//相同的話就不用改啦

else

f[i,j]:=min(min(f[i

-1,j]+

1,f[i,j

-1]+

1),f[i

-1,j

-1]+1);

writeln(f[len,len2]);

end.

P2758 編輯距離

p2758 編輯距離 危樓還望,嘆此意 今古幾人曾會?鬼設神施,渾認作 天限南疆北界。一水橫陳,連崗三面,做出爭雄勢。六朝何事,只成門戶私計?題目描述 設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元...

P2758 編輯距離 DP

傳送門 思路 經典兩個字串匹配的dpdp dp,找到狀態轉移方程即可。這裡提供兩種寫法,dpdp dp,記憶化搜尋。實質一樣。p s ps ps 記憶化搜尋看著舒服一些。d pdp dp include using namespace std typedef long long ll const i...

P2758 編輯距離 dp

設a和b是兩個字串。我們要用最少的字元操作次數,將字串a轉換為字串b。這裡所說的字元操作共有三種 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元 皆為小寫字母!第一行為字串a 第二行為字串b 字串a和b的長度均小於2000。只有乙個正整數,為最少字元操作次數。輸入 1複製 sfdq...