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

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

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

#include<stdio.h>
int main(void)
{
    char str1[301]={0};
    char str2[301]={0};
    scanf("%s",&str1);
    scanf("%s",&str2);
    int len1=strlen(str1);
    int len2=strlen(str2);
    int num=1;
    int i=0,j=0;
    int flag=0;
    int nummax=0;
    int ii;
    if(len1<=len2)
    {}
    else if(len1>len2)
    {
      char temp[301]={0};
        strcpy(temp,str1);
        strcpy(str1,str2);
        strcpy(str2,temp);
        int t;
        t=len1;
        len1=len2;
        len2=t;
    }
     while(num!=len1+1)
        {
            for(i=0;i<=len1-num;i++)//在str1中选取待比较的字符串
            {
                for(j=0;j<=len2-num;j++)//遍历str2
                {
                    for(int k=0;k<num;k++)//比较num次
                    {
                        if(str2[j+k]!=str1[i+k])
                        {
                            flag++;
                        }
                    }
                    if(flag==0&&num>nummax)
                    {
                        nummax=num;
                        ii=i;
                    }
                    flag=0;
                }
            }
            num++;
        }
    
        for(i=ii;i<nummax+ii;i++)
        {
            printf("%c",str1[i]);
        }
        
    
    return 0;
}
全部评论

相关推荐

最近看到华为台风天还让员工上班,感觉近些年华为的风评都不咋样了我投了华为已经二面了,不知道能不能进入到华为,有点迷了
嵌入式劝退第一人:华为风评一直没好过,但每年也依然是一大批应届生的梦中情司,不冲突的。要我说,华为才是真的体面厂,说你在华为工作,身边的人,长辈什么的谁不说你一声牛逼
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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