站位
http://www.cppblog.com/oosky/archive/2006/07/06/9486.html
非常详细
void getNext(const char* pattern,int next[])
{
next[0]=-1;
int k=-1,j=0;
while(pattern[j]!='\0')
{
if(k!= -1 && pattern[k]!= pattern[j] )
k=next[k];
++j;
++k;
if(pattern[k]==pattern[j])
next[j]=next[k];
else
next[j]=k;
}
}