next[1]=0,
设next[j]=k,
next[j+1]=?有两种可能:
(1)若p(k)=P(j),即next[j+1]=k+1;则next[j+1]=next[j]+1;
(2)若p(k)!=p(j):
将模式向右滑动至以模式中的第next[k]个字符和主串中的第j个字符相比较。若next[k]=k',且p(i)=p(k’),则说明在主串中第j+1个字符之前存在一个长度为k’(即next[k])的最长子串,和模式串中从首字符起长度为k’的子串相等,即next[j+1]=k’+1;即next[j+1]=next[k]+1;
同理:若p(j)!=p(k’),则将模式继续向右滑动至将模式中第next[k’]个字符和p(j)对齐,........依次类推,直至p(j)和模式中某个字符匹配成功或者不存在任何k’(1 <k'<j)满足匹配,则next[j+1]=1