【leetcode】32. Longest Valid Parentheses

来源:互联网 发布:快手特效软件视频软件 编辑:程序博客网 时间:2024/05/23 19:24
/** * 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. */#include <iostream>#include <string>#include <stack>#include <algorithm>using namespace std;//找到最长的括号匹配的子串int longestValidParentheses(string s) {    if (s.empty()) return 0;    stack<int> st;    int maxlen = 0;    for (int i = 0; i < s.length(); i++)    {        if (!st.empty() && s[i] == ')' && s[st.top()] == '(')        {            st.pop();            maxlen = max(maxlen, i - st.top());        }        else        {            st.push(i);        }    }    return maxlen;}int main(){    string s = "(()";    cout << longestValidParentheses(s) << endl;    system("pause");    return 0;}
0 0
原创粉丝点击