解题思路:

注意事项:

参考代码:

#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.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论