77
  • 板块P2758 编辑距离
  • 楼主2345A
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/5/10 10:22
  • 上次更新2024/5/10 16:19:13
查看原帖
77
565070
2345A楼主2024/5/10 10:22
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
main()
{
	char a[10000],b[10000];
	fgets(a,9999,stdin);
	fgets(b,9999,stdin);//我喜欢用`fgets`
	
	int dp[2000][2000];
	int chang1=strlen(a);
	int chang2=strlen(b);
	for(int i=0;i<=max(chang1,chang2);i++)
	{
		for(int j=0;j<=min(chang1,chang2);j++)
		{
			dp[i][0]=i;
			dp[0][j]=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]+1),(dp[i][j-1])+1),(dp[i-1][j-1])+1);
		}
	}
	cout<<dp[chang1][chang2]<<endl;
	return 0;
}
2024/5/10 10:22
加载中...