給出乙個字串(假設長度最長為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...