zoukankan      html  css  js  c++  java
  • LeetCode 32. Longest Valid Parentheses

    很容易想到‘)'的数量超过了前面的'(',那么直接非法了

    但多余的'('如何处理呢?我们用第二个倒序的栈,那么'('相当于')',可以跟之前一样的方法处理掉啦

    很明显o(n)解决嘛

    class Solution {
    public:
        int getx(char a)
        {
            if(a=='(')
                return 1;
            else
                return -1;
        }
        int longestValidParentheses(string s) {
            stack<char> p;
            int sump=0,x,sumq,sum;
            int len=s.length();
            int ans=0;
            for(int i=0;i<len;i++)
            {
                x=getx(s[i]);
                sump+=x;
                if(sump<0)
                {
                    sumq=0;sum=0;
                    while(!p.empty())
                    {
                        char b=p.top();
                        int y=-getx(b);
                        sumq+=y;
                        sum++;
                        if(sumq<0)
                        {
                            sumq=0;
                            sum=0;
                        }
                        if(sum>ans)
                             ans=sum;
                        p.pop();
                    }
                    sump=0;
                }
                else
                    p.push(s[i]);
                    
            }
            sumq=0;sum=0;
            while(!p.empty())
            {
                char b=p.top();
                int y=-getx(b);
                sumq+=y;
                sum++;
                if(sumq<0)
                    sum=sumq=0;
                if(sum>ans)
                    ans=sum;
                p.pop();
            }
            return ans;
        }
    };
    

     以前打acm的时候没有养成眼debug的习惯,在编译器上调啊调。现在面试网页上的编译器不好调,感觉有点血崩。。习惯必须养好啊

  • 相关阅读:
    【Luogu】P1402 酒店之王 题解
    CSP/S 2019 游记
    【Luogu】P1306 斐波那契公约数 题解
    【Luogu】P1072 Hankson 的趣味题 题解
    字符串函数
    对数换底公式
    round(x,y)和format(x,y)
    约束和索引
    复合主键对外键的影响
    外键
  • 原文地址:https://www.cnblogs.com/bitch1319453/p/6610114.html
Copyright © 2011-2022 走看看