解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
int len_a,len_b,len,i,j,n,sum=0;
char a[256]={0},b[256]={0},c[512]={0},d[512]={0};
scanf("%s %s",a,b);
strcpy(c,a); //将a拷贝给c
strcpy(d,b); //将b拷贝给d
strcat(c,a); //将a接在c后面,形成一个环
strcat(d,b); //将b接在d后面,形成一个环
len_a=strlen(a);
len_b=strlen(b);
len=len_a>len_b?len_b:len_a;
for(i=0;i<len_a;i++)
{
for(j=0;j<len_b;j++)
{
n=0; //记录当前子串长度
//这题n==len时就不需要这两个环比较了,有的题目需要n<2*len,依题目而定
while(c[i+n]==d[j+n]&&n<len) //找到两个相同字母,n++,此时循环条件也会自动转换成后面一个字母的判断,很妙
{
n++;
}
//一轮比较结束后
sum=sum>n?sum:n; //如果比sum大,则此时的n暂为最大长度,赋值给sum
}
}
printf("%d",sum);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复