leetcode刷題記錄第五題

2022-08-26 18:30:16 字數 537 閱讀 3803

題目:

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。

示例 1:

輸入: "babad"

輸出: "bab"

注意: "aba" 也是乙個有效答案。

示例 2:

輸入: "cbbd"

輸出: "bb"

什麼叫回文串

如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。

此題有暴力破解法,即遍歷所有子串來進比較,效率太低,比較優秀的解法有中心擴充套件法,動態規劃法和「馬拉車」法。我使用的是中心擴充套件法來進行解題。

解法如下:

class solution 

return right - left - 1;

}string longestpalindrome(string s) 

}return s.substr(start,mlen);}};

中心擴充套件法的思路就是選中乙個點,然後分別向兩邊擴充套件,直到左右兩邊擴充套件的字元不相等,返回總共擴充套件了的長度。

LeetCode 刷題記錄(1 5題)

1 兩數之和 題目鏈結 class solution 一次雜湊法 deftwosum self,nums,target type nums list int type target int rtype list int m for i in range len nums minus target n...

leetcode刷題記錄

我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...

LeetCode刷題記錄

動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...