今天主要研究后缀数组,一个比较神奇的数组,与ac自动机相同的是能够解决多模板的文本匹配问题,但是AC自动机需要事先知道所有的模板而后缀数组需要先输入文本串后输入模板串。这里也可以看出来后缀数组是对文本串进行优化的。后缀数组有两种写法,一种用的倍增法另一种用的是dc3,看的是倍增,这里要用到基数排序,然后一系列操作就可以算出
Rank[i]与SA[i]数组了,我也不知道为啥。然后构造最长公共前缀,Heigth[i] : 表示Suffix[SA[i]]和Suffix[SA[i - 1]]的最长公共前缀,也就是排名相邻的两个后缀的最长公共前缀 H[i] : 等于Height[Rank[i]],也就是后缀Suffix[i]和它前一名的后缀的最长公共前缀。用H[i]来求Heigth[i]比较节省时间,然后代码的实现暂时还没有看到懂。