zoukankan      html  css  js  c++  java
  • 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.

    思路:括号匹配使用栈stack来模拟匹配的过程。使用栈来存储左括号的位置信息,失去匹配的右括号作为重新计数的分隔符。

    class Solution {
    public:
        int longestValidParentheses(string s) {
            stack<int> st;
            int n=s.size();
            if(n==0)
                return 0;
            int last=-1;
            int longest=0;
            for(int i=0;i<n;i++)
            {
                if(s[i]=='(')
                {
                    st.push(i);
                }
                else
                {
                    if(st.empty())
                        last=i;
                    else
                    {
                        st.pop();
                        if(st.empty())
                            longest=max(longest,i-last);
                        else
                            longest=max(longest,i-st.top());
                    }
                }
            }
            return longest;
        }
    };
  • 相关阅读:
    事件
    dom对象
    逻辑运算和作用域的问题
    json
    数组
    字符串
    函数
    js的数据类型和全局方法
    js
    10.16 js内容
  • 原文地址:https://www.cnblogs.com/awy-blog/p/3815135.html
Copyright © 2011-2022 走看看