题目描述
设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:
1、删除一个字符;
2、插入一个字符;
3、将一个字符改为另一个字符;
!皆为小写字母!
输入输出格式
输入格式:
第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。
编辑距离
输出格式:
只有一个正整数,为最少字符操作次数。
输入输出样例
输入样例#1:
sfdqxbw gfdgw 输出样例#1:4
var
f:array[0..2000,0..2000]of longint;i,j,k:longint;
s,s2:ansistring;
function min(a,b:longint):longint;
begin
if a<=b then exit(a);
exit(b);
end;
begin
readln(s);
readln(s2);
for i:=1 to length(s2) do f[0,i]:=i;
for i:=1 to length(s)do f[i,0]:=i;
for i:=1 to length(s) do
for j:=1 to length(s2) do
if s[i]=s2[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);
write(f[i,j]);
end.