最長迴文子串

最長迴文子串  是計算機科學中的問題 ， 在一個字符串中查找一個最長的連續的迴文的子串 ， 例如 “ banana ” 最長迴文子串是 “ anana ” 。 最長迴文子串並不一定是唯一的 ， 比如在 “ abracadabra ” 中 ， 沒有超過3個字符的迴文子串 ， 但是有兩個迴文字串長度都是3 ： “ ada ” 和 “ aca ” 。 在一些應用中 ， 我們求出全部的極大迴文子串 （ 不被其他迴文串包含的迴文子串 ） 。 Glenn Manacher 於1975年發現了一種線性時間算法 ， 可以在列出給定字符串中從任意位置開始的所有迴文子串 。 並且 ， Apostolico, Breslauer & Galil 發現 ， 同樣的算法也可以在任意位置查找全部極大迴文子串 ， 並且時間複雜度是線性的 。 因此 ， 他們提供了一種時間複雜度爲線性的最長迴文子串解法 。 另外 ， Jeuring ( 1994 ), Gusfield ( 1997 ) 發現了基於後綴樹的算法 。 也存在已知的高效並行算法 。 最長迴文子串算法不應當與最長迴文子序列算法混淆 。