记住这张图,getnext就是对一个已知的待匹配的串进行分析,nex[i]表示当a[i]匹配失败后我能跳到哪里,继续尝试匹配,而不是每一次失败都从头再来,先来看看代码 const int maxn = 1e5; int net[maxn]; char a[maxn]; void get_next(int len) { int i = 0,j = -1; nex[0] = -1;//别忘记初始化,和汽车的发动机一样重要 while(i < len) { if(j == -1 || a[i] ==…