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

最长的括号子串

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;
    }
};




全部评论

相关推荐

oppo 应用软开 22*15+0.5*12
拿到了ssp完美:真的坎坷,但是你至少拿到这么多offer了!
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务