在看完洛谷大佬的
最详细讲解
以后,我还是不能说没有完全不懂,所以干脆自己写一篇后缀数组详解,造福后人(QAQ)
本篇讲解引用例子和图片来自某不知名视频资源的大佬,如有知道大佬姓名,会立刻回来标注的。
开始之前,先要了解这些数组是干嘛的,一定要记好。
一下以长度为8的字符串aabaaaab为例子,进行讲解
(好的,直接面向代码开始讲解)
点击查看代码
//按第一个字母排序
for(i=1;i<=n;i++)c[x[i]=s[i]]++;
for(i=1;i<=m;i++)c[i]+=c[i-1];
for(i=n;i;i--)sa[c[x[i]]--]=i;
//按第一个字母排序 for(i=1;i<=n;i++)c[x[i]=s[i]]++; for(i=1;i<=m;i++)c[i]+=c[i-1]; for(i=n;i;i--)sa[c[x[i]]--]=i;