| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
求错误!!!!!!!!!一直WA!#include<iostream>
#include<cmath>
#include<string.h>
#include<queue>
using namespace std;
char s[600010];
int next[600010];
int a[600010];
int main()
{//poj2752
while(cin>>s+1)
{
int i,j;
memset(a,0,sizeof(a));
memset(next,0,sizeof(next));
int flag=0;
s[0]='0';
int len=strlen(s);
len=len-1;
next[1]=0;
for(i=2;i<=len;i++)//得到next数组
{
if(flag>0&&s[flag+1]!=s[i])
flag=next[flag];
if(s[flag+1]==s[i])
flag++;
next[i]=flag;//cout<<flag<<" ";
}
j=0;
a[j++]=len;
i=len;
while (1)
{
if(next[i]<=0)
break;
a[j++]=next[i];
i=next[i];
}
for(i=j-1;i>=0;i--)
cout<<a[i]<<" ";
cout<<endl;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator