问题描述
字符串abdfg 和 adfd 通过最少的步骤变为一样的字符串,只能插入、删除、替换 3 种操作
运行结果:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 100
int d[N][N];
int minNum(int a,int b,int c) {
int temp = a < b ? a : b;
return temp < c ? temp :c;
}
void editDistance(char sa[],char sb[],int len1,int len2) {
// 初始化矩阵
for(int i = 0; i <= len1; i++)
d[i][0] = i;
for(int j = 0; j <= len2; j++)
d[0][j] = j;
for(int i = 1; i <= len1; i++) {
for(int j = 1; j <= len2; j++) {
if(sa[i-1] == sb[j-1]) {
d[i][j] = d[i-1][j-1];
} else {
d[i][j] = minNum(d[i-1][j-1], d[i][j-1], d[i-1][j])+1;
}
}
}
for (int i = 0; i <= len1; i++) {
for (int j =