給你乙個字串 s,找到 s 中最長的回文子串。
ps:回文子串,就是乙個字串最常順序書寫和逆序書寫,內容是一樣的,如abba
示例 1:
輸入:s = 「babad」
輸出:「bab」
解釋:「aba」 同樣是符合題意的答案。
示例 2:
輸入:s = 「cbbd」
輸出:「bb」
示例 3:
輸入:s = 「a」
輸出:「a」
示例 4:
輸入:s = 「ac」
輸出:「a」
1 <= s.length <= 1000
s 僅由數字和英文本母(大寫和/或小寫)組成
class solution
//這裡使用中心拓展法,分別重頭對字串每乙個字元當作回文中心,對兩邊進行拓展判斷
int start = 0, end = 0, len = 0, len1 = 0, len2 = 0, i = 0;
for(i = 0; i < s.length(); i++)
}return s.substr(start, end - start + 1);
}/* 此函式用於求傳入字元所能形成的最長回文子串長度 */
int expend_around_center(string &s, int l, int r)
return r - l -1;
}};
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-vtgt26qz-1610348848398)(
所以,以後寫**可以注意一下傳參問題,可以使用引用和指標傳參的,就不必使用值拷貝傳參了,很浪費時間和空間。
leedcode刷題 3 回文數
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 從右向左...
LeedCode刷題感悟
尋找兩個有序陣列的中位數 其實這就是乙個二路歸併排序問題!如下在這裡插入 片 class solution if a length1 break while nums1 a nums2 b while a length1 num k nums1 a while b length2 num k num...
LeedCode刷題筆記 Z字形變化
將乙個給定字串 s 根據給定的行數 numrows 以從上往下 從左到右進行 z 字形排列。比如輸入字串為 paypalishiring 行數為 3 時,排列如下 p a h n a p l s i i g y i r 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 pahnaplsi...