int len = strlen(str);
int next[len];
next[0]=0;
for(int i=1,k=0;i<len;i++)
{
while(k>0 && str[k]!=str[i])
k=next[k-1];
if(str[k]==str[i])
k++;
next[i]=k;
}
int len = strlen(str);
int next[len];
next[0]=0;
for(int i=1,k=0;i<len;i++)
{
while(k>0 && str[k]!=str[i])
k=next[k-1];
if(str[k]==str[i])
k++;
next[i]=k;
}