第一篇题解对 ai,ca_{i, c}ai,c 的解释是:
在每个位置记录 ai,ca_{i, c}ai,c,表示 sai,c+1=cs_{a_{i, c}+1}=csai,c+1=c 且能使 [ai,c+1,i][a_{i, c}+1, i] [ai,c+1,i] 成为合法子串的最大的下标。
但代码中:
a[to[i]][s[i]-'a']=i;
带回解释,区间是:[i+1,toi][i+1, to_i][i+1,toi] .
显然 toi≤ito_i \leq itoi≤i ,左边界大于右边界,解释有误.
在每个位置记录 ai,ca_{i, c}ai,c,表示若 toj=ito_j=itoj=i ,则 sai,c+1=cs_{a_{i, c}+1}=csai,c+1=c 且能使 [ai,c+1,j][a_{i, c}+1, j] [ai,c+1,j] 成为合法子串的最大的下标。