#include "stdio.h"
#include "string.h"
#define LEN 50
#define MIN(a, b) ((a)<(b)?(a):(b))
char a[LEN], b[LEN];
int al, bl;
int dis[LEN][LEN];
void main(){
int i, j;
freopen("in.txt", "r", stdin);
scanf("%s %s", a, b);
al = strlen(a);
bl = strlen(b);
for(i=0; i<=al; i++)
dis[i][0] = i;
for(j=0; j<=bl; j++)
dis[0][j] = j;
for(i=1; i<=al; i++){
for(j=1; j<=bl; j++){
if(a[i-1] == b[j-1])
dis[i][j] = dis[i-1][j-1];
else
dis[i][j] = MIN(dis[i-1][j-1]+1/*变换*/, MIN(dis[i-1][j]+1/*插入*/, dis[i][j-1]+1)/*删除*/);
}
}
for(i=1; i<=al; i++){
for(j=1; j<=bl; j++)
printf("%d ", dis[i][j]);
printf("\n");
}
}
王晓东 编辑距离问题
最新推荐文章于 2022-07-27 19:49:06 发布