题解 | #查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

#include <stdio.h>
#include <string.h>

int main() {
    char a[300], b[300];
    scanf("%s\n%s", a, b);
    int lena = strlen(a);
    int lenb = strlen(b);
    int max = 0;
    char an[300];
    if (lena < lenb) {
        for (int i = 0; i < lena; i++) {
            for (int j = 0; j < lenb; j++) {
                int n = 0;
                while (a[i+n] == b[j+n] && a[i+n]!='\0') {
                    n++;
                }
                if (n > max) {
                    max = n;
                    strcpy(an, a + i);
                    an[max] = '\0';
                }
            }
        }
    }

    if (lena > lenb) {
        for (int i = 0; i < lenb; i++) {
            for (int j = 0; j < lena; j++) {
                int n = 0;
                while (a[j+n] == b[i+n] && b[i+n] !='\0') {
                    n++;
                }
                if (n > max) {
                    max = n;
                    strcpy(an, b + i);
                    an[max] = '\0';
                }
            }
        }
    }
     printf("%s\n",an); 
    return 0;
}

全部评论

相关推荐

02-06 16:33
门头沟学院 Java
Phoenix_Re...:很少最多一两个,大多数保研或者摆烂等着考研
点赞 评论 收藏
分享
01-27 15:41
门头沟学院 Java
想躺平的菜鸡1枚:我项目比你难、学历比你好、还有SCI论文,投java都被拒一大片,现在基本上都要问点agent开发
软件开发投递记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务