//poj 3356
//sep9
#include <iostream>
using namespace std;
const int MAXN=1024;
char a[MAXN],b[MAXN];
int dp[MAXN][MAXN];
int main()
{
int lenA,lenB;
while(scanf("%d%s%d%s",&lenA,&a[1],&lenB,&b[1])!=EOF){
for(int i=0;i<=lenA;++i)
dp[i][0]=i;
for(int j=0;j<=lenB;++j)
dp[0][j]=j;
for(int i=1;i<=lenA;++i)
for(int j=1;j<=lenB;++j){
dp[i][j]=INT_MAX;
if(a[i]==b[j])
dp[i][j]=dp[i-1][j-1];
else
dp[i][j]=min(dp[i-1][j-1],min(dp[i][j-1],dp[i-1][j]))+1;
}
printf("%d\n",dp[lenA][lenB]);
}
return 0;
} poj 3356 AGTC 简单dp
本文介绍了一个用于解决编辑距离问题的算法实现,通过动态规划的方法计算两个字符串之间的最小编辑距离,适用于字符串相似度比较等场景。

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



