数据结构简介
后缀树和后缀数组
- 定义
1)后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串,比如说字符串abcd,bc就是他的其中一个子串,bcd就是他的其中一个后缀.
2)后缀数组就是某个字符串T的所有后缀组成的一个数组
3)后缀树就是包含字符串T所有后缀的压缩trie树(简单的来说) - 后缀数组示意图
- 后缀树示意图
- 后缀数组的作用
1)查找模式P是否存在在文本中:O(PlogT)
2)找出模式P出现的次数:O(P+logT) - 后缀树的作用
1)找出T中最长重复子串:O(T)
2)在两个字符串T1和T2中找出最长公共子串:O(T)
3)找出模式P出现的次数:O§
4)找出指定公共长度L>1的最长子串:O(T) - 后缀数组示例代码
- 后缀树库
- 微信后台全文搜索