字尾陣列 不相同的字串個數

2022-05-05 20:33:08 字數 429 閱讀 5122

spoj改版後好囧……

不相同的子串的個數(spoj694,spoj705)

給定乙個字串,求不相同的子串的個數。

演算法分析:

每個子串一定是某個字尾的字首,那麼原問題等價於求所有字尾之間的不相

同的字首的個數。如果所有的字尾按照 suffix(sa[1]), suffix(sa[2]),

suffix(sa[3]), …… ,suffix(sa[n])的順序計算,不難發現,對於每一次新加

進來的字尾 suffix(sa[k]),它將產生 n-sa[k]+1 個新的字首。但是其中有

height[k]個是和前面的字串的字首是相同的。所以 suffix(sa[k])將「貢獻」

出 n-sa[k]+1- height[k]個不同的子串。累加後便是原問題的答案。這個做法

的時間複雜度為 o(n)。

1166不相同的子串的個數 字尾陣列

題目描述 給定乙個字串,求不相同的子串的個數。輸入 輸入資料第一行為乙個數字 t,表示資料組數。t 10 接下來的 t 行,每行乙個由小寫或大寫字母構成的字串,字串長度不超過 50000。輸出 對於每組資料,輸出一行乙個數字,表示答案。樣例輸入 4 abbabba dabddkababa bacab...

字串含有字元各不相同

前一段,看到乙個問題是乙個字串的所有字元都各不相同。在這裡給出幾種常見的解法。首先,最容易想到的就是乙個桶排序的演算法。直接給出字串所有可能出現的字元的個數個桶,然後遍歷字串,沒個字元出現一次就給相應的桶內數字加一。最後統計看有沒有桶的數字是超過1的就可以知道結果了。然後,我們還可以直接遍歷字串,每...

尋找陣列中不相同元素的個數

題意 乙個整數陣列,計算該陣列中不相同整數的個數。如a 則輸出不相同的個數為7.方法一是使用hash陣列,將hash陣列裡面的數全部制為0 然後hash a i 為0時,將其設定為1 最後hash陣列的和就是不同數字的數目。此種方法的缺點就是只能適合整形陣列,其他陣列不適合 但是優點就是時間複雜度小...