括號要是有效的,必定是成對出現的。比如乙個長度為 7 的字串,我們可以先以 6 個字元為視窗進行滑動判斷,如果 6 個字元沒有匹配的,再以 4 個字元為視窗進行滑動判斷。
但是要超時。
bool
ismatch
(string str)}}
}if(s.empty()
)return
true
;return
false;}
intlongestvalidparentheses
(string s)
else}}
}
我們定義 dp[i] 表示以下標 i 字元結尾的最長有效括號的長度。我們將 dp 陣列全部初始化為 0。顯然有效的子串一定是以 『)』 結尾,因此我們可以知道以 『(』 結尾的子串對應的 dp 值必定為 0。我們只需要求解出陣列中對應的值。
每日一練 求最長回文子串
思想 manacher演算法 該演算法避免了我們在遍歷過程中對回文字串是奇數長度還是偶數長度分別都要進行判斷的操作,做法就是在開始結束以及每個字元之間新增特殊字元,以1221為例,進行填充之後就變成 1 2 2 1 以121為例,進行填充之後就變成 1 2 1 這樣做的好處是,填充之後字串的長度都成...
每日一練之最小的k個數
直接排序,然後取前k小資料。vector int getleastnumbers solution vector int input,int k return res 時間複雜度 o nlongn 空間複雜度 o 1 建立乙個容量為k的大根堆的優先佇列 priority queue 預設大根堆 遍歷...
leetcode每日一練 最長回文子串 java
題目 給定乙個字串s,在s中找到最長的字串。您可以假設s的最大長度為1000。example 1 輸入 babad 輸出 bab 注 aba 也是乙個有效的答案。思想 中心結點法,就是遍歷整個字串,將每個點分別都設為中心結點,然後第二個遍歷是分別對設定的中心向左右擴充套件,所以複雜度為o n 2 比...