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