最短编辑距离

来源:互联网 发布:淘宝全球购什么意思 编辑:程序博客网 时间:2024/06/03 02:10

51nod 1183 编辑距离
题意:插入或删除或修改最少的字符,使两个字符串相同
设d[i][j]表示字符串a[1~i]和b[1~j]的最小编辑距离,则
这里写图片描述
注意边界。

#include<bits/stdc++.h>using namespace std;const int maxn=1000;const int INF=0x3f3f3f3f;char a[maxn+5];char b[maxn+5];int d[maxn+5][maxn+5];int dp(int i,int j){    if(i<1)return j;    if(j<1)return i;    int &ans=d[i][j];    if(ans!=-1)return ans;    ans=INF;    if(a[i]==b[j])ans=min(ans,dp(i-1,j-1));    else ans=min(ans,1+min(dp(i-1,j-1),min(dp(i-1,j),dp(i,j-1))));    return ans;}int main(){    scanf("%s%s",a+1,b+1);    memset(d,-1,sizeof(d));    cout<<dp(strlen(a+1),strlen(b+1));}
0 0
原创粉丝点击