Leetcode||32. Longest Valid Parentheses
2017-10-10 19:07
375 查看
Given a string containing just the characters
find the length of the longest valid (well-formed) parentheses substring.
For
which has length = 2.
Another example is
which has length = 4.
用一个栈来存储左括号的索引,遇到正确匹配的括号则弹出匹配的索引,所以栈中存储的是未匹配上的左括号。新匹配上的括号位置到前一段未匹配到的括号的索引差极为有效括号的大小。
class Solution(object):
def longestValidParentheses(self, s):
"""
:type s: str
:rtype: int
"""
stack = []
maxLen = 0
last = -1
for i in range(len(s)):
if s[i] == '(':
stack.append(i)
else:
if not stack:
last = i
else:
stack.pop()
if not stack:
maxLen = max(maxLen, i - last)
else:
maxLen = max(maxLen, i - stack[-1])
return maxLen
'('and
')',
find the length of the longest valid (well-formed) parentheses substring.
For
"(()", the longest valid parentheses substring is
"()",
which has length = 2.
Another example is
")()())", where the longest valid parentheses substring is
"()()",
which has length = 4.
用一个栈来存储左括号的索引,遇到正确匹配的括号则弹出匹配的索引,所以栈中存储的是未匹配上的左括号。新匹配上的括号位置到前一段未匹配到的括号的索引差极为有效括号的大小。
class Solution(object):
def longestValidParentheses(self, s):
"""
:type s: str
:rtype: int
"""
stack = []
maxLen = 0
last = -1
for i in range(len(s)):
if s[i] == '(':
stack.append(i)
else:
if not stack:
last = i
else:
stack.pop()
if not stack:
maxLen = max(maxLen, i - last)
else:
maxLen = max(maxLen, i - stack[-1])
return maxLen
相关文章推荐
- LeetCode 32 Longest Valid Parentheses
- leetcode 32 : Longest Valid Parentheses
- [LeetCode] 32. Longest Valid Parentheses
- [leetcode-32]Longest Valid Parentheses(java)
- LeetCode 32. Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses
- LeetCode(32)Longest Valid Parentheses
- leetcode 32.Longest Valid Parentheses
- LeetCode | 32. Longest Valid Parentheses——最长有效括号匹配长度
- LeetCode 32:Longest Valid Parentheses
- LeetCode 32 Longest Valid Parentheses 最大合法括号匹配长度计算 动态规划算法有待学习
- leetcode 32 Longest Valid Parentheses
- [leetcode] 【栈】 32. Longest Valid Parentheses
- [Leetcode]32. Longest Valid Parentheses @python
- Leetcode 32 - Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- [Leetcode] 32 - Longest Valid Parentheses
- leetcode笔记:32.Longest Valid Parentheses
- Leetcode 32. Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses