百度 2014百度校園招聘之最長回文串

2021-09-02 08:23:32 字數 1365 閱讀 1871

【題目】

給你乙個字串,找出該字串中對稱的子字串的最大長度。即求最大回文串。

【思路1】暴力法

即不使用技巧,窮舉所有可能。時間複雜度為o(n^3)(時間上最長,不推薦使用),空間複雜度為o(1)。

本思路是從最大長度的字串開始,而不是從最小開始。假如說給定的字串為len,先遍歷長度為len的字串是否為回文串,如果是停止,

如果不是遍歷長度為len-1的字串是否是回文串,一次類推。

#include using namespace std;

//是否是回文串

bool ispalindromesubnumber(string num)

}return true;

}void maxsubpalindromenumber(string num)

//更新最大長度

if(oddlen > maxlen)

//偶數字串

left = i;

right = i+1;

int evenlen = 0;

while(left >= 0 && right < len && str[left] == str[right])

//更新最大長度

if(evenlen > maxlen)

}return str.substr(start,maxlen);

}int main()

str[index++] = '#';

str[index] = '\0';

return str;

}char* maxpalindromenumber(char* s)

else

//繼續確定i位置字元為中心的半徑 這地方用到'$'

while(str[i-p[i]] == str[i+p[i]])

//更新maxid,id

if(p[i]+i > maxid)

}// 最大長度

int maxlen = 0;

center = 1;

for(int i = 1;i < len;i++)

}//提取最大回文串

char* maxstr = new char[maxlen+1];

int index = 0;

for(int i = center - maxlen;i <= center + maxlen;i++)

}maxstr[index] = '\0';

return maxstr;

}int main(){

char* str="skjflkdsjfkldsababasdlkfjsdwieowowwpw";

cout<

[小公尺]2015小公尺校招之回文數判斷

[網易]字串回文分割

百度 2014百度校園招聘之最長回文串

題目 給你乙個字串,找出該字串中對稱的子字串的最大長度。即求最大回文串。思路1 暴力法 即不使用技巧,窮舉所有可能。時間複雜度為o n 3 時間上最長,不推薦使用 空間複雜度為o 1 本思路是從最大長度的字串開始,而不是從最小開始。假如說給定的字串為len,先遍歷長度為len的字串是否為回文串,如果...

2014百度校園招聘 上海站

時間2013 10 13 地點復旦大學第四教學樓 網申職位 軟體開發工程師 1 描述osi 開放系統互聯基本參考模型 七層結構。2 寫出程序間資料共享的方式,至少三種。3 描述tcp和udp的區別,並各寫出乙個他們的上層協議。程式與演算法設計 1 給出陣列a n是可變的 列印出所有元素的組合 2 陣...

百度2013校園招聘題

第一題,基礎題 1.資料庫及執行緒產生死鎖的原理和必要條件,如何避免死鎖。2.列舉物件導向程式設計的三個要素和五項基本原則。解答 封裝,繼承,多型物件導向的五大基本原則 單一職責原則 srp 開放封閉原則 ocp 黎克特制替換原則 lsp 依賴倒置原則 dip 介面隔離原則 isp 單一職責原則 s...