题解 | #公共子串计算#
公共子串计算
http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
思路
- 得到输入数据
- 循环比较每个字符串的每1个字符是否相等,相等则统计++
- 替换相同子串最少的子串数量
- 比较结束,输出最大子串个数
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;
}
华为机试刷题 文章被收录于专栏
刷华为机试习题