目錄
1.題目描述
2.解決方案
給定乙個字串s
,找到s
中最長的回文子串。你可以假設s
的最大長度為 1000。
示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是乙個有效答案。
示例 2
輸入: "cbbd"
輸出: "bb"
方法一: 動態規劃
演算法
用二位陣列來標記字串從下標 i 到下標 j 是否為回文串。
對於當前要判斷的區間 [i, j]:
上述分析一般情形時發現,對區間 [i, j] 的判斷要依賴區間 [i+1,j-1],所以 i 應該從大變小,j 應該從小變大。並且每輪迴圈中 j 的初始值設為 i 就可以。
對於字串 "cbba" 而言,具體情況如下圖:
複雜度分析
時間複雜度:o(n^2),兩層 for 迴圈。
空間複雜度:o(n^2),使用二維陣列來標記字串從下標 i 到下表 j 是否為回文串。
LeetCode5 最長回文串
include include include include include include using namespace std ifndef solution h define solution h 思路 從回文串的對稱點開始,依次向左向右比較,不相同的時候停止遍歷,直到找出最大的長度的回文...
Leetcode 5 最長回文串
解題思想 1.中心擴充套件法 從字串中心分別往左右兩端移動,while l 0 r易混點 回文串的起始值 i 迴圈中回文串的長度 1 2 看不懂找數帶入即可 class solution def longestpalindrome self,s str str n len s defgetlen l...
LeetCode5最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s長度最長為1000。示例 輸入 babad 輸出 bab 注意 aba 也是有效答案示例 輸入 cbbd 輸出 bb 動態規劃來做,每個回文字串的子字串也是回文字串,即string是回文字串那麼它的string.substring 1,lenth ...