20. 有效的括号

简介: 20. 有效的括号

题目描述

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


有效字符串需满足:


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

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

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

解题思路

括号匹配的问题,显然我们可以用栈来解决。


遇到左括号就入栈。


当是右括号的时候,观察栈是否为空,当为空的时候——不匹配


当栈顶的左括号与右括号不匹配的时候——不匹配

代码

class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(auto ch:s)
        {
            if(ch=='('||ch=='['||ch=='{') st.push(ch);
            else 
            {
                if(st.empty()) return false;
                if(ch==')') 
                {
                    if(st.top()!='(') return false;
                    st.pop();
                }
                else if(ch==']')
                {
                    if(st.top()!='[') return false;
                    st.pop();
                }
                else if(ch=='}')
                {
                    if(st.top()!='{') return false;
                    st.pop();
                }
            }
        }
        return st.empty();
    }
};
相关文章
|
缓存 Shell Linux
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
916 0
|
5月前
|
人工智能 移动开发 自然语言处理
阿里云多端低代码开发平台魔笔是什么?如何建站?魔笔怎么收费?2026最新整理魔笔百科
阿里云魔笔(Mobi)是AI+低代码多端应用开发平台,融合通义千问大模型,支持拖拽搭建Web/小程序/H5/App页面,AI自动生成文案、图片、SQL,内置50+行业模板及BaaS服务,一键发布上线。零代码门槛,5分钟建站,适合业务人员、运营、产品经理等非技术人员使用。(239字)
533 17
|
6月前
|
存储 缓存 弹性计算
阿里云最便宜的云服务器解析:38元轻量及99元和199元等云服务器配置、适用场景与购买流程
阿里云目前有多款特价云服务器,价格实惠,性能稳定,满足不同用户需求。轻量应用服务器2核2M配置,40GB ESSD云盘,仅需38元/年,适合个人博客、小型企业官网等轻量级应用。经济型e实例2核2G配置,40G Entry云盘,99元/年且续费同价,适合开发测试和小型应用部署。通用算力型u1实例2核4G配置,80G ESSD Entry云盘,199元/年,性能更强,适合需要更高稳定性和性能的企业用户。这些特价服务器提供了高性价比的解决方案,助力用户低成本上云。
905 1
|
Linux Perl
Linux命令split的使用方法说明
【6月更文挑战第11天】Linux命令split的使用方法说明
957 4
DCN神州数码WAF-P-2021命令行恢复出厂
DCN神州数码WAF-P-2021命令行恢复出厂
|
Oracle Java 关系型数据库
Spring Boot 3系列之一(初始化项目)
近期,JDK 21正式发布,而Spring Boot 3也推出已有一段时间。作为这两大技术领域的新一代标杆,它们带来了许多令人振奋的新功能和改进。尽管已有不少博客和文章对此进行了介绍,但对于我们这些身处一线的开发人员来说,有些文章和文档可能一看就会,一写就废。因此,为了更深入地理解JDK 21和Spring Boot 3的新特性,以及加深对Java和Spring Boot生态的理解,我们决定通过编写并分享代码,来展示一个简单的项目。我们计划在之后逐步完善这个项目。本文将向您展示如何使用最新版本的Spring Boot和JDK来初始化一个简单的Spring Boot 3程序。
689 1
Spring Boot 3系列之一(初始化项目)
|
API Android开发 UED
56. 【Android教程】媒体播放器:MediaPlayer
56. 【Android教程】媒体播放器:MediaPlayer
1010 0
|
存储 安全 C语言
C语言中的字符串常量及其处理技术
C语言中的字符串常量及其处理技术
1335 0
|
前端开发 JavaScript 网络协议
【JavaScript技术专栏】WebSockets在JavaScript中的应用
【4月更文挑战第30天】WebSocket是为解决HTTP协议在实时通信上的局限而诞生的技术,提供全双工、持久连接的通信方式,适合在线聊天、实时游戏等场景。JavaScript中的WebSocket API使浏览器与服务器能建立持久连接,通过事件处理连接、发送/接收数据及错误。相较于AJAX轮询和长轮询,WebSockets更高效、实时,是现代Web实时通信的优选。
314 0
|
存储 运维 监控
IDC:云效产品能力No.1,领跑中国DevOps市场
近日,全球领先的专业市场调查机构国际数据公司(IDC)发布了《IDC MarketScape:中国 DevOps 平台市场厂商评估,2022》报告。此报告中对中国主流 DevOps 云厂商从战略(Strategies)、能力(Capabilities)两个维度进行了全面评估。阿里云云效凭借先进理念、技术服务、生态与市场的突出表现,在产品能力维度排名第一,持续领跑中国 DevOps 市场。
25483 6
IDC:云效产品能力No.1,领跑中国DevOps市场