解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <string.h>
int findMaxSpan(char *S, char *S1, char *S2) {
int lenS = strlen(S);
int lenS1 = strlen(S1);
int lenS2 = strlen(S2);
int maxSpan = -1;
// 遍历S中的每一个可能的S1
for (int i = 0; i < lenS; i++) {
// 找到S1在S中的位置
if (strncmp(S + i, S1, lenS1) == 0) {
// 在S1之后的子串中查找S2
char *posS2 = strstr(S + i + lenS1, S2);
while (posS2 != NULL) {
// 计算跨距
int span = posS2 - (S + i + lenS1);
if (span > maxSpan) {
maxSpan = span;
}
// 继续查找下一个S2
posS2 = strstr(posS2 + 1, S2);
}
}
}
return maxSpan;
}
int main() {
char S[301], S1[11], S2[11];
// 从标准输入读取数据
scanf("%[^,],%[^,],%s", S, S1, S2);
// 调用函数计算最大跨距
int result = findMaxSpan(S, S1, S2);
// 输出结果
printf("%d\n", result);
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复