1. 程式人生 > 實用技巧 >20. 有效的括號 - 8月14日

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

拓展學習