LeedCode刷題筆記 最長回文子串

2021-10-14 11:21:07 字數 872 閱讀 1114

給你乙個字串 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...