首页 > 其他分享 >【力扣20】有效的括号

【力扣20】有效的括号

时间:2024-09-21 10:21:41浏览次数:12  
标签:20 xiao stk 力扣 括号 哈希 stack

20. 有效的括号 - 力扣(LeetCode)

括号序列压入栈中,遇到匹配的出栈,最后判断栈是否为空

直接使用栈的数据结构stack。

class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;//初始化栈
        for(auto c : s){
            //入栈
            if(c=='(' || c=='[' || c=='{') stk.push(c);
            else{
                //根据ascii码确定每对括号之间的差值
                if(stk.size() && abs(stk.top()-c)<=2)
                    stk.pop();
                else return false;//不匹配,无效序列
            }
        }
        return stk.empty();//若最终栈为空,则为有效序列
    }
};

ps:

  • 两两配对,先判断字符串长度为偶数,否则跳出
  • 可用哈希表或数组,保存对括号:unordered_map哈希表

可参考灵神https://leetcode.cn/problems/valid-parentheses/solutions/2809539/gua-hao-xiao-xiao-le-san-chong-li-yong-z-2xb3

标签:20,xiao,stk,力扣,括号,哈希,stack
From: https://blog.51cto.com/u_16319570/12073434

相关文章