求最少加几个字符使字符串成周期串
len-next[len]周期串最小周期的长度
#include<stdio.h>
#include<string.h>
int next[1000010];
char s[1000010];
void get()
{
int i,j,len;
next[1]=0;
j=0;
len=strlen(s+1);
for(i=2;i<=len;i++)
{
while(j>0&&s[i]!=s[j+1])j=next[j];
if(s[i]==s[j+1])
j++;
next[i]=j;
}
}
int main()
{
int t,len;
scanf("%d",&t);
while(t--)
{
scanf("%s",s+1);
len=strlen(s+1);
get();
if(next[len]==0)printf("%d\n",len);
else if(len%(len-next[len])==0)printf("0\n");
else printf("%d\n",len-next[len]-len%(len-next[len]));
}
return 0;
}