来源:Leetcode
原帖:http://oj.leetcode.com/problems/longest-valid-parentheses/
题目:
Given a string containing just the characters '(' 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.
代码:
原帖:http://oj.leetcode.com/problems/longest-valid-parentheses/
题目:
Given a string containing just the characters '(' 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 {
public:
int longestValidParentheses(string s) {
stack<int> lefts;
int maxlen = 0, last = -1; // last index: 保存的是
for (int i = 0; i < s.size(); i++){
if (s[i] == '(') {
lefts.push(i);
} else {
if (lefts.empty())
last = i;
else {
lefts.pop();
if (lefts.empty())
maxlen = max(maxlen, i-last);
else
maxlen = max(maxlen, i-lefts.top());
}
}
}
return maxlen;
}
};
No comments:
Post a Comment