#include<iostream>
#include<string.h>
using namespace std;
int f[2001][2001];
char a[2001],b[2001];
int main()
{
cin>>a>>b;
int lena=strlen(a);
int lenb=strlen(b);
// cout<<lena<<' '<<lenb<<endl;
for(int i=0;i<=lena;i++)
{
for(int j=0;j<=lenb;j++)
{
if(i==0)
{
f[i][j]=j; continue;
}
if(j==0)
{
f[i][j]=i; continue;
}
if(a[i-1]==b[j-1])
{
f[i][j]=f[i-1][j-1];
continue;
}
f[i][j]=min(f[i-1][j-1],min(f[i-1][j],f[i][j-1]))+1;
}
}
cout<<f[lena][lenb];
return 0;
}
#include<string.h>
using namespace std;
int f[2001][2001];
char a[2001],b[2001];
int main()
{
cin>>a>>b;
int lena=strlen(a);
int lenb=strlen(b);
// cout<<lena<<' '<<lenb<<endl;
for(int i=0;i<=lena;i++)
{
for(int j=0;j<=lenb;j++)
{
if(i==0)
{
f[i][j]=j; continue;
}
if(j==0)
{
f[i][j]=i; continue;
}
if(a[i-1]==b[j-1])
{
f[i][j]=f[i-1][j-1];
continue;
}
f[i][j]=min(f[i-1][j-1],min(f[i-1][j],f[i][j-1]))+1;
}
}
cout<<f[lena][lenb];
return 0;
}
本文介绍了一个使用动态规划方法计算两个字符串之间最小编辑距离的C++程序实现。通过构造二维数组来记录子问题的解,避免了重复计算,提高了效率。适用于评估字符串之间的相似度。
272

被折叠的 条评论
为什么被折叠?



