LeetCode

LeetCode-20 有效的括号

nkul · 9月28日 · 2020年 · 35次已读

本题是数据结构栈的经典应用,建议记下来!

class Solution {
public:
    bool isValid(string s) {
        stack stk;
        for(auto c : s){
            if(c == '(' || c == '[' || c == '{') stk.push(c);
            else {
                if(stk.size() && abs(stk.top() - c) <= 2 ) stk.pop();
                else return false;
            }
        }
        return stk.empty();
    }
};

本题中判断括号匹配时,使用的是if(stk.size() && abs(stk.top() - c) <= 2 ) stk.pop();

因为() {} []的ascii码相差一位或者两位。



0 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!