首页 > 编程知识 正文

c语言最长子串,c语言最长公共子序列

时间:2023-05-04 19:11:03 阅读:136027 作者:1884

Problem Description给定两个序列X={x1,x2,xm}和Y={y1,y2,yn},找出x和y的最长公共子序列。

输入数据有多个组,每组有两行。 每行包含不超过500个表示序列x和y的字符串(输入均为大写字母(a,z ) )。

Output每组输出一行,表示求出的最长的公共子序列的长度,如果不存在公共子序列,则输出0。

sampleinputabcbdabbdcabasampleoutput 4h int

#include stdio.h

#include stdlib.h

#define N 500

#include string.h

int main () )

{

int i,j,m,n,c[N][N];

char x[N],y[N];

while(gets(y ) x gets (y ) )

{

m=Strlen(x;

c[i][0]=0;

n=Strlen(y;

c[0][j]=0;

for(I=1; i=m; I )

for(j=1; j=n; j )

{

if(x(I-1 )==y (j-1 ) )

c[i][j]=c[i-1][j-1] 1;

ELSEif(c[I-1][j]c[I][j-1] ) )

c[i][j]=c[i-1][j];

else c[i][j]=c[i][j-1];

}

printf(%d(n ),c[m][n];

}

返回0;

}

加油哦!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。