求最大公共字符串----发现书上的错误了
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]);
}
书上意思大概如下:
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]);
}
相关文章推荐
- 两个或N个字符串最大公共子串算法
- 两个字符串的最大公共子串
- 求出两个字符串的最大公共字符串
- 求两个字符串最大公共字符串(听说是微软几年前面试题)
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 在ofbiz 的类:org.ofbiz.base.start.Classpath中发现对一个类路径字符串拼接的错误
- 两字符串中的最大公共字符串的个数及公共字符串
- 两个或N个字符串最大公共子串算法
- 求两个字符串的最大公共子串
- 求多个字符串的最大公共子串---后缀数组
- 求N个字符串的最大公共子串
- LCS求两个字符串的最大公共子串
- 找出两个或者多个字符串中最大的公共串,最大的整数,最长的整数
- 转:最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 两个或N个字符串最大公共子串算法
- Exe 求两个字符串的最大公共字串
- 找出两个字符串的最大公共子串
- C++ 沉思录第八章 代码整理,修改(好像书上的代码根本没法用,这只是按他那个思想写的,若发现错误请指正.)
- 求两个字符串的最大公共字串
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离【转载】