简单的题解
2024-08-17 14:45:46
发布于:广东
30阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int dp[1005][1005];
char x[1005],y[1005];
int main()
{
cin >> x >> y;
for(int i = strlen(x);i >= 1;i--) x[i] = x[i - 1];
for(int j = strlen(y);j >= 1;j--) y[j] = y[j - 1];
for(int i = 1;i <= strlen(x);i++)
{
for(int j = 1;j <= strlen(y);j++)
{
if(x[i] == y[j]) dp[i][j] = dp[i - 1][j - 1] + 1;
else dp[i][j] = max(dp[i - 1][j],dp[i][j - 1]);
}
}
cout << dp[strlen(x)][strlen(y)] - 1 << endl;
return 0;
}
这里空空如也
有帮助,赞一个