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

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

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

#include <stdio.h>

#include<string.h>

int main() {

    int i,j,max=0,count;

    char str1[301],str2[301],str[301],ans[301],str_o[301];

    scanf("%s",str1);

    scanf("%s",str2);

    //str1为较短字符串,较短的优先,故放在第一层循环

    if(strlen(str1)>strlen(str2))

    {

        strcpy(str,str1);

        strcpy(str1,str2);

        strcpy(str2,str);  

    }

    for(i=0;i<strlen(str1);i++)

    {

        

        for(j=0;j<strlen(str2);j++)

        {

            count=0;

            

             for(int f1=i,f2=j;str1[f1]==str2[f2]&&f1<strlen(str1)&&f2<strlen(str2);f1++,f2++)

             {

             ans[count]=str2[f2];//自动覆盖了,故不需要置零

             count++;

             }

        if(max<count)

        {

            max=count;

            strcpy(str_o,ans);

        }

        }

        

        

    }

    printf("%s",str_o);

    return 0;

}

全部评论

相关推荐

冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
服从性笔试吗,发这么多笔,现在还在发。
蟑螂恶霸zZ:傻 x 公司,发两次笔试,两次部门匹配挂,
投递金山WPS等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务