20. 有效的括号 - 8月14日

题目

20. 有效的括号

 

 

 

我的思路

借助栈这个数据结构。入栈模拟左括号,出栈模拟右括号。注意考虑一些特殊情况的判断,比如栈孔时遇到右括号等

我的实现

class Solution {
public:
    enum bracket{small,medium,large};
    bool isValid(string s) {
        deque<bracket> stack;
        for(auto it: s){
            if(it=='('){
                stack.push_back(small);
            }else if(it=='['){
                stack.push_back(medium);
            }else if(it=='{'){
                stack.push_back(large);
            }else if(it==')'&&!stack.empty()){
                if(stack.back()==small){
                    stack.pop_back();
                }else{
                    return false;
                }
            }else if(it==']'&&!stack.empty()){
                if(stack.back()==medium){
                    stack.pop_back();
                }else{
                    return false;
                }
            }else if(it=='}'&&!stack.empty()){
                if(stack.back()==large){
                    stack.pop_back();
                }else{
                    return false;
                }
            }else{
                return false;
            }
        }
        if(stack.empty())
        return true;
        else return false;
        
    }
};

 

拓展学习

posted on 2020-08-14 10:34  BoysCryToo  阅读(126)  评论(0编辑  收藏  举报

导航