題目:
給定乙個字串 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 需要一種方法,尋找符合要求的元...