44 分求助!
查看原帖
44 分求助!
1008513
xiaoshumiao楼主2023/12/24 14:57
#include<cstdio>
#include<cstring>
using namespace std;
const int MAXL=1005;
char a[MAXL],b[MAXL],dp[MAXL][MAXL];
int min(int a,int b) {
  if(a<b)
    return a;
  return b;
}
int main() {
  //freopen("letter.in","r",stdin);
  //freopen("letter.out","w",stdout);
  int n,m;
  scanf("%s",a);
  scanf("%s",b);
  n=strlen(a);
  m=strlen(b);
  for(int i=1;i<=n;i++)
    dp[i][0]=i;
  for(int i=1;i<=m;i++)
    dp[0][i]=i;
  for(int i=1;i<=n;i++)
  	for(int j=1;j<=m;j++)
  	  if(a[i-1]==b[j-1])
  	    dp[i][j]=dp[i-1][j-1];
  	  else
  	    dp[i][j]=min(min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1;
  printf("%d",dp[n][m]);
  return 0;
}
2023/12/24 14:57
加载中...