筆試面試題(8) 回文子串

2021-06-21 01:57:55 字數 629 閱讀 4421

1、驗證整個字串是不是回文(最簡單的了)

直接驗證或遞迴驗證都可以....

2、求連續的回文子串,如:abdadbx,則回文子串就是bdadb

整個有乙個最優的演算法為:「中心法求最長回文子串」(線性複雜度),具體的部落格:寫的真好!

#include#includeconst int m = 110010*2;

char str[m];//start from index 1

int p[m];

char s[m];

int n;

void checkmax(int &ans,int b)

inline int min(int a,int b)

}}void pre()

for (len = 1; len < slen; len++)

else

}else}}

return maxlen[0][slen - 1];

}int main()

{ char str[1000];

cin>>str;

int ans=longestlen(str,strlen(str));

cout<3、如果要可以不連續的回文子串,只能用dp了,中心擴充套件法是求不了的。

面試題 最長回文子串

在網上找了幾個版本,改編的,好難啊。加油。最大回文子串問題 include includeusing namespace std 返回最長的回文子串 char max substring bxy char str,int length for int i 0 i m i 不預先判斷奇偶,先奇後偶,m...

面試題 最長回文子串

這個也算是很經典的題目了,o n 的解法還是要自己鑽進去想一想的,不能總以為自己會了,動手寫一寫才是王道。題大家應該都知道,我就直接用ppt裡面的了。例如ababcdedcbaab,最長回文子串是abcdedcba。暴力解法1 列舉起點o n 列舉終點o n 判斷回文o n 總複雜度o n 3 暴力...

面試題 02 06 回文鍊錶

編寫乙個函式,檢查輸入的鍊錶是否是回文的。示例 1 輸入 1 2輸出 false高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?思路 因為要求空間複雜度o 1 所以需要找出鍊錶終點,用乙個快指標和乙個慢指標,快指標每次跑2步,慢指標每次跑1步,遍歷的時候順便把前半部分鍊錶顛倒。最後...