poj1458(LCS)

lcs
#include"iostream"
using namespace std;
int c[1001][1001];
int Max(int a, int b)
{
return a>b?a:b;
}
void LCS(char aa[], char bb[], int x, int y)
{
int i,j;
for(i=0;i<=x;i++)
c[i][
0]=0;
for(j=0;j<=y;j++)
c[
0][j]=0;

for(i=1;i<=x;i++)
{
for(j=1;j<=y;j++)
{
if(aa[i-1]==bb[j-1]) {c[i][j]=c[i-1][j-1]+1;}
else { c[i][j]=Max( c[i][j-1], c[i-1][j]);}
}
}
}
int main()
{
char a[1001],b[1001];
int L1,L2;
while(scanf("%s %s",a,b)!=EOF)
{
int L1=strlen(a);
int L2=strlen(b);
LCS(a, b, L1, L2);
cout
<<c[L1][L2]<<endl;

}
return 0;
}
posted @ 2011-04-12 18:16  聊聊IT那些事  阅读(252)  评论(2编辑  收藏  举报