suffix array后缀数组一般用于字符串匹配问题当中,一般来说可以用suffix tree解决的字符串匹配问题用suffix array都可以解决.
主要参考了geeksforgeeks上关于后缀数组和lcp(longest common prefix)的教程.
https://www.geeksforgeeks.org/suffix-array-set-2-a-nlognlogn-algorithm/
自己封装了一个SuffixArray类,里面包含后缀数组和lcp.因为构造suffix array和lcp的代码量有些大,代码就贴在这里,以后万一需要用的时候可以直接拿来用...
struct Suffix{
int _index;
int _rank[2];
};
class SuffixArray{
public:
vector<Suffix> getSuffixes(){return suffixes;}
vector<int> getlcp(){return lcp;}
//构建后缀数组
void build(string& s);;
static bool sortFunction(Suffix& a,Suf