2014-03-12 77 views
0

我是想兩個字符串找到所有最長公共子

假設我正確地計算後綴陣列和LCP陣列之間找到所有最長公共子爲SA []和LCP []是我的邏輯正確的還是我遺漏了什麼?

這裏LCP數組在i和i-1索引之間。

假設我們有兩個字符串str = abcabc和str1 = bc。我改變str = str +'#'+ str1。

我的後綴數組SA [] = [6,3,0,7,4,1,8,5,2]

和LCP陣列是= [0,0,3,0,2, 2,0,1,1]

什麼可以是一個更好的算法來找到它們?

+1

您可以輕鬆地自己回答這個問題,通過檢查,如果它工作的好文章。 –

+0

@JoachimPileborg其實我想知道更好的算法來找到所有最長的公共子串與他們的索引在不同的向量/數組 – user3405426

+1

在這種情況下,我不認爲這是一個問題,但更好地適合http:// codereview。 stackexchange.com/代替。另外,如果你想要一個更好的算法,那麼你應該在你的問題中實際陳述。 –

回答

-1

上有效率地找到所有常見的串,用實例中C. http://www.drdobbs.com/architecture-and-design/algorithm-alley/184404588

+0

而不僅僅是提供一個鏈接,[這將是更可取的](http://meta.stackexchange.com/a/8259)在這裏包括答案的重要部分,並提供鏈接以供其他參考。如果你不能完成這個任務,你應該考慮簡單地[留下評論](http://stackoverflow.com/privileges/comment)而不是發佈答案。 – Dukeling

+0

好的,Dukeling。我是新來的SO(我昨天開始(嘗試)回答問題):) –

+0

Dukeling的評論仍然適用 –