首页 > 其他 > 详细

最长公共子序列

时间:2014-02-01 15:00:00      阅读:517      评论:0      收藏:0      [点我收藏+]

南阳理工题     最长公共子序列
#include<stdio.h>
#include<string.h>

int a[1001][1001];
int lcs(char *s1, char *s2)
{
    int m=strlen(s1),n=strlen(s2);
    int i,j;
 a[0][0]=0;
 for(i=1;i<=m;++i)a[i][0]=0;
    for(i=1;i<=n;++i)a[0][i]=0;
    for(i=1;i<=m;++i)
  for(j=1;j<=n;++j){
  if(s1[i-1]==s2[j-1])a[i][j]=a[i-1][j-1]+1;
  else if(a[i-1][j]>a[i][j-1])a[i][j]=a[i-1][j];
  else a[i][j]=a[i][j-1];
  }
return a[m][n];
}


int main(){
 int n;
 scanf("%d",&n);
 while(n--){
char c[1008],b[1008];
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%s%s",c,b);
printf("%d\n",lcs(b,c));
 }


return 0;
}

最长公共子序列

原文:http://blog.csdn.net/suhu1/article/details/18888521

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!