示例 1:
輸入: "babad"
輸出: "bab"
注意: "aba" 也是乙個有效答案。
示例 2:
輸入: "cbbd"
輸出: "bb"
中間往兩邊法的思路很簡單,就是說找到乙個正確的核心起點,然後判斷最近的左右是否滿足條件,如果滿足就把帶上這兩個點的當做新的中間.
需要注意的是存在兩種核心起點,1. 單個的字元 2. 相同的兩個字元,而且這兩種的判斷邏輯會有區別,所以我分開處理了
好久沒寫dp了,就寫寫感覺.
dp需要乙個明確的起始點(邊界條件),和乙個明確的遞推關係,遞推關係要能覆蓋所有情況.
再找到這兩點之後,題目的邏輯就和dp沒關係了,dp就變成了純粹的數字遊戲.,用符號來代替題目想找到的結果.
值得注意的是,dp的方法會把所有的情況都判斷一次,所以速度並非是最快的,他只是通過狀態轉移的方式進行計算而已.(是不是有合理的剪枝空間?
LeetCode5 最長回文串
include include include include include include using namespace std ifndef solution h define solution h 思路 從回文串的對稱點開始,依次向左向右比較,不相同的時候停止遍歷,直到找出最大的長度的回文...
LeetCode 最長回文子串 5
給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 方法一 暴力法 時間複雜度為o n 3 會超時 思路 最笨的方法,遍歷所有子串s,並判斷s的反轉s 與...
LeetCode 5 最長回文串
目錄 1.題目描述 2.解決方案 給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 方法一 動態規劃 演算法 用二位陣列來標記字串從下標 i 到下標 j 是否為回...