您的位置:首页 > 其它

求最大公共字符串----发现书上的错误了

2014-08-30 11:17 204 查看
我用的秦玉平版本的,数据结构c语言版

书上意思大概如下:

void maxsubstr(char *s, char *t)

{

int pos=0,len=0,i,j,k,max_len=0,len1,len2;

i=0;

len1=strlen(s);

len2=strlen(t);

while(i<len1)

{

j=0;

while(j<len2)

{

if(s[i]==t[j])

{

for(k=1,len=1;(k+i<len1)&&(k+j<len2)&&(s[k+i]==t[k+j]);k++,len++);

if(len>len2)

{

pos=i;

len2=len;

}

}

j++;

}

i++;

}

for(i=0;i<len2;i++)

printf("%c\t",s[i+pos]);

}

其实只有一个很小很小的错误,估计是作者的笔误哦,因为坐着的思想是洗好没有错误的

我的如下:

void maxsubstr(char *s, char *t)

{

int pos=0,len=0,i,j,k,max_len=0,len1,len2;

i=0;

len1=strlen(s);

len2=strlen(t);

while(i<len1)

{

j=0;

while(j<len2)

{

if(s[i]==t[j])

{

for(k=1,len=1;(k+i<len1)&&(k+j<len2)&&(s[k+i]==t[k+j]);k++,len++);

if(len>max_len) //将长度较大的子串初始位置与长度保留,主要是这里,作者有笔误

{

pos=i;

max_len=len;

}

}

j++;

}

i++;

}

for(i=0;i<max_len;i++)

printf("%c\t",s[i+pos]);

}


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