按照递推的思想求解next[]数组 根据定义next[0]=-1,假设next[j]=k, 即P[0...k-1]==P[j-k,j-1] 若P[j]P[k],则有P[0..k]P[j-k,j],很显然,next[j+1]=next[j]+1=k+1; 若P[j]!=P[k],则可以把其看做模式匹配的问题,即匹配失败的时候,k值如何移动,显然k=next[k]. 因此可以这样去实现: void getNext(char *p,int *next) { int j,k; next[0]=-1; j…