LintCode 最長回文子串

2021-07-04 13:00:27 字數 662 閱讀 5938

給出乙個字串(假設長度最長為1000),求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。

您在真實的面試中是否遇到過這個題?

yes

樣例給出字串"abcdzdcab",它的最長回文子串為"cdzdc"

挑戰o(n2) 時間複雜度的演算法是可以接受的,如果你能用 o(n) 的演算法那自然更好。

標籤expand 

相關題目

expand 

分析:嘗試寫了遍manacher演算法。其中p[i]表示以i為中心,包括i在內的半徑

**:

class solution 

else

p[i] = 1;

while(i-p[i]>=0&&news[i+p[i]]==news[i-p[i]])

p[i]++;

if(i+p[i]>mx)

if(p[i]>maxp)

}string ret = "";

for(int i=retid-p[retid]+1;i<=retid+p[retid]-1;i++)

if(news[i]!='#')

ret+=news[i];

return ret;

}};

lintcode 最長回文子串

問題描述 給出乙個字串 假設長度最長為1000 求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。樣例給出字串 abcdzdcab 它的最長回文子串為 cdzdc 這道題讓我們求最長回文子串,首先說下什麼是回文串,就是正讀反讀都一樣的字串,比如 bob level noon 等等。那麼最...

LintCode之最長回文子串

給出乙個字串 假設長度最長為1000 求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。樣例 給出字串 abcdzdcab 它的最長回文子串為 cdzdc public class solution if s.length 1 stringbuffer sb new stringbuff...

lintcode練習 200 最長回文子串

給出乙個字串 假設長度最長為1000 求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。給出字串 abcdzdcab 它的最長回文子串為 cdzdc o n2 時間複雜度的演算法是可以接受的,如果你能用 o n 的演算法那自然更好。class solution param s input...