#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
#define MAX 1000
char a[MAX], b[MAX];
int c[MAX][MAX];
void LSC(char *a, char *b)
{
int i,j;
memset(c, 0, sizeof(c));
int la = strlen(a), lb = strlen(b);
for( i=0; i<la; i++)
for( j=0; j<lb; j++)
{
if(a[i]==b[j]) c[i+1][j+1] = c[i][j]+1;
else if(c[i+1][j]>c[i][j+1])
c[i+1][j+1] = c[i+1][j];
else
c[i+1][j+1] = c[i][j+1];
}
printf("%d\n",c[la][lb]);
}
int main()
{
int N;
scanf("%d",&N);
getchar();
while(N--)
{
gets(a);
gets(b);
LSC(a,b);
}
system("pause");
return 0;
}
最长公共子序列 DP 南阳理工
最新推荐文章于 2019-03-03 11:55:44 发布