LeetCode20. 有效的括号(2024冬季每日一题 11)

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

有效字符串需满足:

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

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

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

示例 1:

输入:s = "()"

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

提示:

1 < = s . l e n g t h < = 1 0 4 1 <= s.length <= 10^4 1<=s.length<=104

s 仅由括号 '()[]{}' 组成


思路:

  • 通过栈来校验括号顺序是否正确,是否有效
cpp 复制代码
class Solution {
public:
    int stack[10010];
    int tt = -1;
    unordered_map<char, char> h;
    bool isValid(string s) {
        h['}'] = '{';
        h[')'] = '(';
        h[']'] = '[';
        int n = s.size();
        for(int i = 0; i < n; i++){
            char c = s[i];
            if(c == '(' || c == '{' || c == '['){
                stack[++tt] = c;
            }else{
                if(tt == -1) return false;
                if(stack[tt] != h[c]) return false;
                tt--;
            }
        }
        return tt == -1;
    }
};
相关推荐
CodeCraft Studio23 分钟前
3D文档控件Aspose.3D实用教程:在 C# 中将 3MF 文件转换为 STL
c++·3d·c#
楽码24 分钟前
了解HMAC及实现步骤
后端·算法·微服务
CoovallyAIHub1 小时前
YOLOVision 2025 官宣日期!大会议程暗藏 YOLOv14 发布信号?
深度学习·算法·计算机视觉
歆晨技术笔记1 小时前
开源项目 - 基于 C++ 实现沪深交易所流式二进制协议
c++
点灯的棉羊1 小时前
从C学C++(10)-string/vector/map的简单使用
c语言·c++
草莓熊Lotso1 小时前
《吃透 C++ 类和对象(上):封装、实例化与 this 指针详解》
开发语言·c++·经验分享·笔记·其他
CoovallyAIHub1 小时前
基于CNN与Transformer的无人机应急救援网络异常流量检测
深度学习·算法·计算机视觉
Shun_Tianyou2 小时前
Python Day28 HTML 与 CSS 核心知识点 及例题分析
开发语言·前端·css·python·算法·html
·前路漫漫亦灿灿2 小时前
C++11-下
开发语言·c++
啊阿狸不会拉杆2 小时前
《算法导论》第 18 章 - B 树
数据结构·c++·b树·算法·排序算法