题解 | #公共子串计算#
公共子串计算
http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
#include<string.h>
int fun(char str[],char arr[],int len1,int len2)
{
int p1=0,p2=0,count=0,max=0;
for(int i=0;i<len1;i++)
{
for(int j=0;j<len2;j++)
{
if(str[i]==arr[j])
{
count=0;
p1=i;
p2=j;
while(str[p1]==arr[p2]&&p1<len1&&p2<len2)
{
count=count+1;
p1=p1+1;
p2=p2+1;
}
if(count>max)
{
max=count;
}
}
}
}
return max;
}
int main()
{
char str[151];
while(scanf("%s",str)!=EOF)
{
char arr[151];
scanf("%s",arr);
int len1=strlen(str);
int len2=strlen(arr);
printf("%d\n",fun(str,arr,len1,len2));
}
return 0;
}