最長括號匹配長度。
如果是 「 是否 「 的話,題目是easy,一旦是找最長,那就是hard難度了。
棧記錄當前的(位置
「()((())」
關鍵是在斷開的位置,之後可能是全新的開始((),也可能是並列的開始(),要記錄長度,其實這就要求棧中不是括號,而是位置資訊。
棧中的記錄為:看**下方
class
solution
:def
longestvalidparentheses
(self, s:
str)
->
int:
p =[-
1]
maxn =
0for i in
range
(len
(s)):if
(s[i]
=='('):
else
: p.pop()if
(len
(p))
: maxn =
max(maxn, i - p[-1
])else
:return maxn
棧中的狀態
[-1]
[-1, 0]
[-1]
[-1, 2]
[-1, 2, 3]
[-1, 2, 3, 4]
[-1, 2, 3]
最長括號匹配長度
問題 假如給你乙個由 和 組成的乙個隨機的括號序列,當然,這個括號序列肯定不能保證是左右括號匹配的,所以給你的任務便是去掉其中的一些括號,使得剩下的括號序列能夠左右括號匹配且長度最長,即最長的合法括號序列。輸入 測試資料報括多個,每個測試資料只有一行,即乙個隨機的括號序列,該括號序列的長度保證不超過...
LeetCode 最長有效括號
方法一 方法二 給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 示例 2 輸入 輸出 4 解釋 最長有效括號子串為 有效的括號 括號的生成 出棧入棧方法 參考之前的有效括號題目,當 前乙個為 則刪除這對,當全部刪除則為有效括號。在棧...
LeetCode 最長有效括號
給定乙個只包含 和 的字串,找出最長的包含有效括號的子串的長度。示例 1 輸入 輸出 2 解釋 最長有效括號子串為 示例 2 輸入 輸出 4 解釋 最長有效括號子串為 思路 1 棧用來儲存讀取到的括號的下標,而不是括號字元。初始時為了統一現在棧底將 1入棧,以便第乙個遇到右括號與之後遇到的情況保持統...