题解 | #有效括号序列# 回看

有效括号序列

http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

Well,发现自己的解题思路还是有问题

遇到左括号直接压栈处理,遇到右括号,再看栈顶,若是匹配,则弹出

最后栈如果为空,那就相当于完全处理完毕了,直接返回true

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
bool isValid(string s) {
    // write code here
    stack<char> stk;
    char p = ' ';
    for(int i = 0;i < s.size();i++) {
        //左括号统一入栈
        if(s[i] == '('||s[i] == '['||s[i] == '{') {
            stk.push(s[i]);
        }
        //
        else if(s[i] == ')')
        {
            //栈顶为空,说明永远不会再有左括号了,所以直接false
            if(stk.empty()) return false;
            if(stk.top() == '(') stk.pop();
        }
        else if(s[i] == '}') {
            if(stk.empty()) return false;
            if(stk.top() == '{')  stk.pop();
        }
        else if(s[i] == ']') {
            if(stk.empty()) return false;
            if(p = stk.top() == '[') stk.pop();
        }
    }
    // 此时栈顶为空,说明所以元素处理完毕啦,直接返回true
    if(stk.empty()) {
        return true;
    }
    return false;
}

};
全部评论

相关推荐

董春花_:真诚无罪,别听评论区那个清华的。按他的逻辑,你有分寸人觉得你是不想来,你积极热情人觉得你太想来,你好骗人就可你养鱼,你不好骗人觉得你服从性不高,合着**做啥都白扯。保持谦逊礼貌与对offer的积极性不才是最正常,也正确的做法么?招聘方的错强加到应聘者身上,***何不食肉糜。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务