黑马程序员技术交流社区
标题:
找最大字串
[打印本页]
作者:
15342193033
时间:
2015-1-6 08:59
标题:
找最大字串
如"uiweithame" 和 "ithama"
作者:
shicuf
时间:
2015-1-6 11:50
昨晚刚写了一个很笨的方法,经典实现还没来得及做,现在还需要吗?
作者:
风淡淡
时间:
2015-1-6 12:22
我的面试题,代码因为紧张写的有错误,更正了发出来,大家看看吧,可能5期与我无缘了,分享出来大家学习
checknext(char *str1,char *str2,int i,int j,int *length)
{
if(str1[i+1]==str2[j+1]&&str[i+1]!='\0'&&str2[j+1]!='\0')
{
(*length)++;
checknext(str[i+1],str[j+1],i+1,j+1,length); // 递归查找下一个相同的字符
}
}
(void)commStr(char *str1, char *str2)
{
char *longstr;
char *shortstr;
int length = 0;
int max = 0;
int start = 0;
if(str1.length>str2.length)
{
longstr = str1;
shortstr = str2;
}
else
{
longstr = str2;
shortstr = str1;
}
for(int i=0;i<longstr.length;i++) // 遍历
{
for(int j =0;j<shortstr.length;j++)
{
if(longstr[i]==shortstr[j])
{
length = 1;
checknext(longstr,shortstr,i,j,&length);
if(length>max)
{
max = length;
start = i;
}
}
}
}
if(length == 0)
{
printf("没有找到最大公共字符串!\0");
}
else
{
for(int i=start;i<(max+length);i++) // 输出
{
printf("最大公共字符串是:%c\0",longstr[i]);
}
}
}
int main()
{
char *a = "nbitheimanb";
char *b = "itheima";
commStr(a,b);
return 0;
}
作者:
风淡淡
时间:
2015-1-6 12:25
输出改为
for(int i=start;i<(max+length);i++) // 输出
{
printf("最大公共字符串是:%c",longstr[i]);
}
printf("\0");
作者:
风淡淡
时间:
2015-1-6 12:41
请大神点评吧
作者:
风淡淡
时间:
2015-1-7 01:18
刚才装好虚拟机一贴代码,错误一堆啊
作者:
张传宾
时间:
2015-1-7 23:58
看清题目,在多个字符串中找最大公共子串!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2