您的位置:首页 > 其它

nyoj-36-最长公共子序列

2013-11-14 12:57 197 查看
#include<stdio.h>

#include<string.h>

int a[1010][1010];

char b[1010],c[1010];

int main()

{
int s;
scanf("%d",&s);
while(s--)
{
int l1,l2,i,j;
scanf("%s%s",b,c);
l1=strlen(b);
l2=strlen(c);
for(i=0;i<l1;i++)
for(j=0;j<l2;j++)
a[i][j]=0;
for(i=0;i<l1;i++)
for(j=0;j<l2;j++)
{
if(b[i]==c[j])
a[i+1][j+1]=a[i][j]+1;
else
a[i+1][j+1]=a[i][j+1]>a[i+1][j]?a[i][j+1]:a[i+1][j];
}
printf("%d\n",a[l1][l2]);
}
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: