POJ 3080 Blue Jeans(二)
sum=l;
strcpy(res,s2);
}else if(sum==l)
{
if(strcmp(res,s2)>0)
{
strcpy(res,s2);
}
}
}
}
}
}
if(find==false)
{
printf("no significant commonalities\n");
}else
{
printf("%s\n",res);
}
}
return 0;
}
void get_next(int l)
{
int i,j;
next[0]=-1; next[1]=0;
j=0;
for(i=2;i<=l;)
{
if(j==-1||s2[i-1]==s2[j])
{
i++; j++;
if(s2[i-1]==s2[j])
{
next[i-1]=next[j];
}else
{
next[i-1]=j;
}
}else if(s2[i-1]!=s2[j])
{
j=next[j];
}
}
}
int KMP(char s3[100],int l)
{
int l2=l,i,j;
int l3=len;
get_next(l2);
i=j=0;
while(i<=l3-1)
{
if(j==-1||s2[j]==s3[i])
{
i++; j++;
}else if(s2[j]!=s3[i])
{
j=next[j];
}
if(j==l2)
{
return 1;
}
}
return 0;
}