有效的括号--leetcode

  • 有效的括号

给定一个只包括 '(',')','{','}','','' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = "()"

输出:true

示例 2:

输入:s = "()\[\]{}"

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "(\[\])"

输出:true

示例 5:

输入:s = "()"

输出:false

cpp 复制代码
class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        for (int i = 0; i < s.size(); ++i) {
            if (stk.empty()) {
                stk.push(s[i]);
            } else {
                if (stk.top() == '[' && s[i] == ']') {
                    stk.pop();
                } else if (stk.top() == '{' && s[i] == '}') {
                    stk.pop();
                } else if (stk.top() == '(' && s[i] == ')') {
                    stk.pop();
                } else {
                    stk.push(s[i]);
                }
            }
        }
        if (stk.empty()) {
            return true;
        }
        return false;
    }
};
相关推荐
xiaoye-duck12 分钟前
《Linux网络编程》TCP 网络编程(下):基于 TCP 多线程通用字典服务 + 远程命令执行实战
linux·服务器·tcp/ip
陈让然44 分钟前
VS Code C/C++ 插件 cpptools 内存占用异常
linux·运维
1000世界小札5 小时前
《大话数据结构》第9章精读:归并排序与快速排序完整 C++ 实现
数据结构·c++·算法
2601_956121977 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
兴通物联科技8 小时前
SMT PCB 微小 DataMatrix 码扫不动问题分析 兴通 XT8601B 600 万像素工业读码器落地实践
大数据·人工智能·单片机·嵌入式硬件·算法·计算机视觉
ltl9 小时前
QUIC 握手实现:Initial 到 1-RTT 的最小路径
linux
Android系统攻城狮11 小时前
Linux PipeWire深度解析之pw_init调用流程与实战(八十三)
linux·运维·服务器·音频进阶·pipewire音频进阶
月华路11 小时前
G1 GC 对数组与大对象(Humongous)的处理
java·jvm·算法
我想走路带风11 小时前
LRU和最长前缀和(计算机网络算法)
计算机网络·算法