//#include <algorithm>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <cstring>
#include <string>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <deque>
using namespace std;
string str1, str2;//想不通为什么用字符数组会运行错误,调了好久不知道为什么错……
int main()
{
cin>>str1>>str2;
int len1 = str1.length();
int len2 = str2.length();
int dp[len1+1][len2+1];
for(int i=0; i<=len1; i++) dp[i][0] = i;
for(int i=0; i<=len2; i++) dp[0][i] = i;
for(int i=1; i<=len1; i++)
{
for(int j=1; j<=len2; j++)
{
dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + 1;
if(str1[i-1] == str2[j-1]) dp[i][j] = min(dp[i][j], dp[i-1][j-1]);
else dp[i][j] = min(dp[i][j], dp[i-1][j-1]+1);
}
}
printf("%d\n", dp[len1][len2]);
return 0;
}
【codeup墓地】22888: 编辑距离(动态规划)
最新推荐文章于 2020-10-17 10:36:57 发布