技术栈
后缀树
mjhcsp
4 小时前
java
·
开发语言
·
c++
·
suffix-tree
·
后缀树
C++ 后缀树(Suffix Tree):原理、实现与应用全解析
后缀树(Suffix Tree)是处理字符串子串问题的终极数据结构,它将字符串的所有后缀压缩存储为一棵多叉树,能在 (O(1))(预处理后)时间内回答子串存在性、最长重复子串、最长公共子串等问题。尽管构建过程复杂(Ukkonen 算法可做到 (O(n)) 时间),但其极致的查询效率使其成为字符串处理的“神器”。本文将从核心原理、节点设计、Ukkonen 算法实现到实战应用,全面解析后缀树的设计思想与 C++ 落地技巧。
闻缺陷则喜何志丹
5 个月前
c++
·
算法
·
倍增
·
桶排序
·
后缀数组
·
lcp
·
后缀树
【倍增 桶排序】后缀数组
C++算法与数据结构本博文代码打包下载本博文代码打包下载字符串s,长度为N,rank[i]记录s[i…N-1]在所有后缀的字典序,i ∈ \in ∈[0,N-1]。比如:s = “bac”,则rank = {2,1,3}。s = “abbc”,则rank = {1,2,3,4}。sa[i] = x,表示s[x…n-1]的字典序是i。 暴力做法,时间复杂度:O(NNlogn)。 s[i…N-1] 简记为suff(i)。
我是有底线的