對於兩個字符串A和B,我們將字符串的相似性定義爲兩個字符串共有的最長前綴的長度。例如,字符串「abc」和「abd」的相似性爲2,而字符串「aaa」和「aaab」的相似性爲3.字符串操作:計算「字符串與其後綴的相似性」
問題是給出一種算法來計算相似度總和一個帶有每個後綴的字符串S.例如,讓字符串爲:ababaa
。然後,字符串的後綴是ababaa
,babaa
, abaa
,baa
,aa
和a
。這些字符串與字符串ababaa
的相似性分別爲6,0,3,0,1,1
。因此答案是6 + 0 + 3 + 0 + 1 + 1 = 11
。
那麼你試圖解決它?你卡在哪裏?你在尋找什麼樣的幫助? – bobbymcr 2011-12-15 19:49:20
Ukkonen的算法在O(n)中建立前綴樹的實現 https://gist.github.com/3355993 – bicepjai 2012-08-15 09:16:32