前綴樹和后綴樹 后綴樹的概況是什么?
后綴樹的概況是什么?后綴樹是一種數(shù)據(jù)結構,可以快速解決字符串的許多問題。后綴樹的目的是支持有效的字符串匹配和查詢。在學習后綴樹之前,讓我們先了解trie,一種數(shù)據(jù)結構。Trie是一個搜索樹,可以用來存
后綴樹的概況是什么?
后綴樹是一種數(shù)據(jù)結構,可以快速解決字符串的許多問題。后綴樹的目的是支持有效的字符串匹配和查詢。
在學習后綴樹之前,讓我們先了解trie,一種數(shù)據(jù)結構。Trie是一個搜索樹,可以用來存儲和查找字符串。trie的每一面對應一個字符。在trie中搜索字符串s時,只需按順序枚舉s的字符,并從trie的根節(jié)點中選擇相應的邊即可。如果同時轉到trie樹的葉節(jié)點,則trie中存在s。如果未到達葉節(jié)點,或者在枚舉中未找到相應的邊,則s不包括在trie中。
后綴樹是一種壓縮的trie樹。
什么是后綴數(shù)組求字符串匹配?
讓我們看看這個示例,以找到最大的字符串。如果是子序列,則示例1應輸出DDD
一般思路如下:
假設讀取字符串是s,而回答字符串是a
顯然,a必須是s的后綴,因為在前幾個數(shù)字相等的情況下,字符串越長,它就越大。貪婪地走到最后一定是正確的。
通過這種方式,我們可以使用基數(shù)排序來獲得每個后綴在O(n logn)復雜度范圍內的排名,最大的一個就是答案。
這是我的代碼:(假設給定字符串中只有26個小寫字母)