题解 | #公共子串计算#

公共子串计算

http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

思路

  1. 得到输入数据
  2. 循环比较每个字符串的每1个字符是否相等,相等则统计++
  3. 替换相同子串最少的子串数量
  4. 比较结束,输出最大子串个数

Answer

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

int main()
{
    char str1[300];
    char str2[300];
    int maxTemp=0;
    int max_len=0;
    scanf("%s\n%s",str1,str2);
    for(int i=0; i<strlen(str1);i++){
        for(int j=0;j<strlen(str2);j++){
            int a=i,b=j;
            while(str1[a]==str2[b] && a<strlen(str1) && b<strlen(str2)){
                a++;
                b++;
                maxTemp++;
            }
            if(maxTemp>max_len){
                max_len = maxTemp;
            }
            maxTemp=0;
        }
    }
    printf("%d\n",max_len);
    return 0;
}
华为机试刷题 文章被收录于专栏

刷华为机试习题

全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
2 收藏 评论
分享
牛客网
牛客企业服务