许多代码中最后匹配的时候都是以下(或者类似的)代码:
for (int i = 1; t[i]; i++) { u = tr[u][t[i] - 'a']; for (int j = u; j; j = fail[j]) val[j]++; }
那如果 fail 指针是一条链,以上代码是否会被卡成 O(n2)O(n^2)O(n2)?