标签:
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.
int longestValidParentheses(string s) { int maxLen = 0; int lastError = -1; vector<int> stack; for(int i=0; i<s.size(); i++) { if (s[i] == ‘(‘) stack.push_back(i); else if (s[i] == ‘)‘) { if (stack.size()>0 ) { stack.pop_back(); int len; if (stack.size()==0) len = i - lastError; else len = i - stack.back(); if (len > maxLen) maxLen = len; } else lastError = i; } } return maxLen; }
32. Longest Valid Parentheses *HARD*
标签:
原文地址:http://www.cnblogs.com/argenbarbie/p/5244507.html