输入
第1行:字符串a(a的长度 <= 1000)。 第2行:字符串b(b的长度 <= 1000)。
输出
输出a和b的编辑距离
输入示例
kitten sitting 输出示例
3
#include <stdio.h>
#include <algorithm>
#include <cstring>
using namespace std;
char a[1005],b[1005];
int n,m,f[1005][1005];
int same(int i,int j){
if(a[i]==b[j]) return 0;
else return 1;
}
int main()
{
memset(f,0,sizeof(f));
scanf("%s%s",a+1,b+1);
n=strlen(a+1);
m=strlen(b+1);
for(int i=0;i<=n;i++)
f[i][0]=i;
for(int j=0;j<=m;j++)
f[0][j]=j;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
f[i][j]=min(f[i-1][j-1]+same(i,j),min(f[i][j-1]+1,f[i-1][j]+1));
}
}
printf("%d\n",f[n][m]);
return 0;
}