编辑距离(动态规划法)

来源:互联网 发布:怎样看出淘宝是包邮的 编辑:程序博客网 时间:2024/05/22 12:28
#include <iostream>#include <string.h>#include <stdio.h>using namespace std;void HHHString(int m,int n,char *a,char *b,int (*c)[50]);int min(int a,int b,int c) {         int t = a < b ? a : b;         return t < c ? t : c;     } int main( ){char a[50],b[50];cin>>a;cin>>b;int m=strlen(a);int n=strlen(b);int c[50][50];HHHString(m,n,a,b,c);}void HHHString(int m,int n,char *a,char *b,int (*c)[50]){int i,j;c[0][0]=0;for(i=0;i<=m;i++) c[i][0]=i;for(i=0;i<=n;i++) c[0][i]=i;for(i=1;i<=m;i++)    for(j=1;j<=n;j++)    {int cost = (a[i] == b[j] ? 0 : 1);                 int x = c[i-1][j] + 1;                 int y = c[i][j-1] + 1;                 int z = c[i-1][j-1] + cost;                 c[i][j] = min(x,y,z);    }cout<<c[m][n];}
和求最大公共序列相似,不同的是,a[i]不等于b[j]的情况与等于的情况不同。
1 0