fail[0]=fail[1]=1; for(int i=1;i<n;++i){ while(j&s[i]!=s[j])j=fial[j]; if(s[i]==s[j])j++; fial[i+1]=j; }//对模式串求next
KMP
原文:https://www.cnblogs.com/ARTlover/p/9610236.html