[LeetCode]Longest Valid Parentheses
2014-05-27 16:43
357 查看
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
is
自己没写对,看的网上的资料:
这道题时间限制在O(n),用一个 stack 实现括号配对+统计, 为了方便实现,写成数组的形式。
对不同深度的括号配对统计个数,一层配对成功把该层统计结果加给上一层,这一层清空
'('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.
自己没写对,看的网上的资料:
这道题时间限制在O(n),用一个 stack 实现括号配对+统计, 为了方便实现,写成数组的形式。
对不同深度的括号配对统计个数,一层配对成功把该层统计结果加给上一层,这一层清空
class Solution { public: int longestValidParentheses(string s) { int ans = 0; std::vector<int> count(1, 0); for (int i = 0; i < s.size(); i++) { if (s[i] == '(') { count.push_back(0); } else { if (count.size() > 1) { count[count.size() - 2] += *count.rbegin() + 2; count.pop_back(); ans = ans > *count.rbegin() ? ans : *count.rbegin(); } else { count[0] = 0; } } } return ans; } };
相关文章推荐
- [leetcode刷题系列]Longest Valid Parentheses
- LeetCode Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses——(use stack)
- [LeetCode]Longest Valid Parentheses
- [LeetCode] 047: Longest Valid Parentheses
- Leetcode32 Longest Valid Parentheses
- Leetcode: Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- [LeetCode]Longest Valid Parentheses(!!!)
- [LeetCode] Longest Valid Parentheses
- leetcode 20|22|32. Valid Parentheses 22. Generate Parentheses 32. Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- Leetcode:Longest Valid Parentheses
- Leetcode -- Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses
- leetcode - Longest Valid Parentheses
- Longest Valid Parentheses - LeetCode
- [LeetCode] Longest Valid Parentheses
- leetcode 32. Longest Valid Parentheses
- LeetCode 32. Longest Valid Parentheses