【題目】
給你乙個字串,找出該字串中對稱的子字串的最大長度。即求最大回文串。
【思路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...