扩展kmp

https://blog.csdn.net/discreeter/article/details/52022367
重点在这:
根据extend数组的定义,可以推断出S[po,P]=T[0,P-po],从而得到 S[k+1,P]=T[k-po+1,P-po],令len=next[k-po+1],(回忆下next数组的定义),分两种情况讨论:

1:k+len

=P int next[N]; int extend[N]; void find_next(string s) { int len = s.length(); next[0] = len; int po = 1,p=0; while(s[p]==s[p+1] && p+1

你可能感兴趣的:(扩展kmp)