kmp题。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,nxt[1000005];
char s[1000005];
int main()
{
scanf("%d",&n);
scanf("%s",s+1);
nxt[0]=-1;
for(int i=2,j=0;i<=n;i++)
{
while(j>0&&s[i]!=s[j+1])
{
j=nxt[j];
}
if(s[j+1]==s[i])
j++;
nxt[i]=j;
}
printf("%d",n-nxt[n]);
return 0;
}