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