输入样例
abbca
aba
输出样例
3
#include<iostream>
#include<algorithm>
#include<sstream>
#include<math.h>
#include<vector>
#include<queue>
#include<list>
#include<map>
#include<set>
#include<string>
#include<stdio.h>
#include<ctype.h>
#include<cstring>
#include<cstdlib>
#include<iomanip>
using namespace std;
string s1, s2;
int table[1005][1005];
int dp(int i, int j)
{
if (table[i][j]) return table[i][j];
if (i == -1) return 0;
if (j == -1) return 0;
if (s1[i] == s2[j])
{
int h = dp(i - 1, j - 1);
table[i][j] = h + 1;
return h+1;
}
else
{
int h = max(dp(i - 1, j), dp(i, j - 1));
table[i][j] = h ;
return h;
}
}
int main()
{
freopen("in.txt", "r", stdin);
ios::sync_with_stdio(0);
cin >> s1 >> s2;
cout << dp(s1.length() - 1, s2.length() - 1);
}