【题目链接】
http://poj.org/problem?id=1458
题目意思
给两个字符串,问最长公共子子序列。(模板题)
解题思路
给个带图的博客:https://blog.youkuaiyun.com/sr_19930829/article/details/14058959
代码部分
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <queue>
#include <string>
#include <map>
using namespace std;
#define LL long long
#define inf 0x3f3f3f3
const int N = 1005;
int dp[N][N];
int main()
{
string s1,s2;
while (cin>>s1>>s2)
{
memset(dp,0,sizeof(dp));
int l1 = s1.size();
int l2 = s2.size();
for (int i = 1; i <= l1; i++)
for (int j = 1; j <= l2; j++)
{
if (s1[i-1] == s2[j-1])
dp[i][j] = dp[i-1][j-1]+1;
else
{
dp[i][j] = max(dp[i][j-1],dp[i-1][j]);
}
}
cout << dp[l1][l2] << endl;
}
return 0;
}