void getheight() { LL k=0; for(int i=1;i<=n;i++) { if (x[i] == 0) continue; if (k) --k; while (s[i + k] == s[sa[x[i] - 1] + k]) ++k; h[x[i]] = k; } }
如上是求height 数组的一段代码,第三行 for 循环内起始值为1时可以AC,起始值为2却不能,height[1]不是等于0吗?求助