20. 有效的括號 - 8月14日
阿新 • • 發佈:2020-08-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; } };