题解 | #最长的括号子串#

最长的括号子串

http://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad

栈。让栈中保存最后一个没有被匹配的右括号的下标,当遇到左括号时,将左括号的下标入栈,当遇到右括号时,弹出栈顶元素表示「最后一个没有被匹配的右括号的下标」,如果栈不为空,当前右括号的下标减去栈顶元素即为「以该右括号为结尾的最长有效括号的长度」。

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return int整型
     */
    int longestValidParentheses(string s) {
        int max_count=0;
        stack<int> stk{};
        stk.push(-1);
        for(int i=0;i<s.length();i++){
            if(s[i]=='(') stk.push(i);
            else{
                stk.pop();
                if(stk.empty()) stk.push(i);
                else max_count=i-stk.top()>max_count?i-stk.top():max_count;
            }
        }
        return max_count;
    }
};




全部评论

相关推荐

双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务