Leetcode—— 20.有效的括号

news2024/11/25 21:24:04

20. 有效的括号

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

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

在这里插入图片描述

class Solution {
public:
    bool isValid(string s) {

        if(s.length()%2==0)
        {           
           stack<char> st;
            for(int i=0;i<s.length();i++)
            {
                char c=s.at(i);
                if(c=='('||c=='['||c=='{')
                {
                    st.push(c);
                }
                else if(c==')'){
                    if(!st.empty()&&st.top()=='(')
                    {
                        st.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
                else if(c=='}')
                {
                    if(!st.empty()&&st.top()=='{')
                    {
                        st.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
                else{
                    if(!st.empty()&&st.top()=='[')
                    {
                        st.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            return st.empty();
        }
        return false;

    }
};

Leecode官方代码:

class Solution {
public:
    bool isValid(string s) {
        int n = s.size();
        if (n % 2 == 1) {
            return false;
        }

        unordered_map<char, char> pairs = {
            {')', '('},
            {']', '['},
            {'}', '{'}
        };
        stack<char> stk;
        for (char ch: s) {
            if (pairs.count(ch)) {
                if (stk.empty() || stk.top() != pairs[ch]) {
                    return false;
                }
                stk.pop();
            }
            else {
                stk.push(ch);
            }
        }
        return stk.empty();
    }
};

作者:力扣官方题解
链接:https://leetcode.cn/problems/valid-parentheses/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1029391.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode-中等题】 222. 完全二叉树的节点个数

文章目录 题目方法一&#xff1a;把该题当做一个普通的二叉树来做&#xff08;任何遍历都可以&#xff09;方法二&#xff1a;利用完全二叉树的性质来做 题目 方法一&#xff1a;把该题当做一个普通的二叉树来做&#xff08;任何遍历都可以&#xff09; 例如&#xff1a;二叉树…

如何选择一只股票,待完善。

目录 ROE(盈利能力)增长率(成长能力)收现比(营收质量)总资产周转率(经营能力)增长率(成长能力)商誉净资产比(排雷)流动比率(排雷) ROE(盈利能力) 什么是ROE? ROE 全名叫 Return of Equity&#xff0c;翻成中文叫“股东回报率”&#xff0c;也叫"净资产收益率"。 …

token登录的实现

token登录的实现 我这种token只是简单的实现token&#xff0c;就是后端利用UUID 生成简单随机码&#xff0c;利用随机码作为在Redis中的键&#xff0c;然后存储的用户信息作为值&#xff0c;在每次合理请求的时候对token的有效时间进行刷新&#xff08;利用拦截器&#xff09;&…

常见的文件格式

一、C:\fakepath\新建文本文档.txt [object String] 实现方式&#xff1a; <input onchange"test(this.value)" type"file"></input><script>function test(e){console.log(e,Object.prototype.toString.call(e))}</script> 二、…

js 数组对象转为 key对应的数组

1、将要转换的格式 2、 转换后格式 3、代码处理 可以使用forEach循环遍历原始数组&#xff0c;并将每个对象的属性值分别存储在一个新的对象中。然后&#xff0c;使用Object.values()方法获取这些属性值的数组。 console.log(result--, result);let dealRes {};result.forEac…

10.12广州见 | 第十六届智慧城市大会报名通道全面开启

第十六届中国智慧城市大会 将于10月12日至13日 在广州举办 智慧城市是数字中国、智慧社会的核心载体&#xff0c;是数字时代城市发展的高级形态。由中国服务贸易协会、中国测绘学会、中国遥感委员会主办的第十六届中国智慧城市大会&#xff0c;将以“数实融合开放创新智引未…

“降本”是关键,FCU1104打造低成本工商业储能EMS

在不久前举行的EESA中国国际储能展上&#xff0c;“工商业储能”成为了热度最高的话题之一&#xff0c;几乎每家展出工商业储能系统的展商都收获了大量观众的驻足围观&#xff0c;热度非凡。究竟是怎样的原因让工商业储能如此瞩目呢&#xff1f; 通过与多家储能厂家沟通并查阅…

群晖管家+内网穿透实现公网远程访问本地黑群晖

白嫖怪狂喜&#xff01;黑群晖也能使用群晖管家啦&#xff01; 文章目录 白嫖怪狂喜&#xff01;黑群晖也能使用群晖管家啦&#xff01;1.使用环境要求&#xff1a;2.下载安装群晖管家app3.随机地址登陆群晖管家app4.固定地址登陆群晖管家app 自己组装nas的白嫖怪们虽然也可以通…

IP转地理位置:探讨技术与应用

IP地址是互联网上设备的唯一标识符&#xff0c;而将IP地址转换为地理位置信息是网络管理、安全监控和市场定位等领域中的一项重要任务。本文将深入探讨IP转地理位置的技术原理和各种应用场景。 IP地址与地理位置 IP地址&#xff08;Internet Protocol Address&#xff09;是一…

一、八大排序(sort)

文章目录 一、时间复杂度&#xff08;一&#xff09;定义&#xff1a;常数操作 二、空间复杂度&#xff08;一&#xff09;定义&#xff1a; 三、排序&#xff08;一&#xff09;选择排序1.定义2.代码3.特性 &#xff08;二&#xff09;冒泡排序1.定义2.代码3.特性 &#xff08…

樱花(筛素数+约数)

题目 给定一个整数 n&#xff0c;求有多少正整数数对 (x,y) 满足 1/x1/y1/n!。 输入格式 一个整数 n。 输出格式 一个整数&#xff0c;表示满足条件的数对数量。 答案对 1e97取模。 数据范围 1≤n≤106 输入样例&#xff1a; 2输出样例&#xff1a; 3样例解释 共有…

中华崛起,科技强国!这三款充满科技风的科技模板,一起来探索吧

最近是不是都被华为mate60和苹果15刷屏了啊 &#xff0c;在我们的生活中&#xff0c;科技有着千变万化的面貌。它让我们的世界变得越来越小&#xff0c;让我们的生活越来越便捷。它使我们的梦想成为现实&#xff0c;使我们的思想得以落地。它打开了新的视野&#xff0c;为我们提…

java面向对象(八)

文章目录 一、abstract关键字的使用1.概念2. abstract修饰类:抽象类3.abstract修饰方法&#xff0c;抽象方法4.abstract使用上的注意点&#xff1a;5.抽象类的匿名子类 二、计算一段代码执行所花费的时间三、接口的使用1.接口的使用2.定义接口中的成员3.代码demo4.Java类可以实…

LabVIEW应用开发——前面板和程序框图

上篇我们讲述了LabVIEW的安装并且新建了一个VI程序成功运行&#xff0c;这篇我们详细了解界面上一些工具、属性和层次结构。 LabVIEW安装 我们双击打开上次创建的.vi文件。 这时候我们发现只有前面板&#xff0c;程序框图界面不见了&#xff0c;我们需要使用CtrlE或者在Windows…

点进来看看ChatBase替代品在提高工作效率方面有什么优势

ChatBase是帮助企业分析和改善其对话式 AI 体验的一个很好的定制聊天机器人平台。但它也有一些局限性&#xff0c;像其对对话分析的关注范围狭窄&#xff0c;而且还依赖手动标记和标记对话进行分析&#xff0c;可能会阻碍提高工作的效率。那有什么比较好的平台能够替代Chatbase…

解决 VMware Network Adapter VMnet1 IP 地址冲突导致无法打开路由器管理页面

问题表现 运行 ipconfig&#xff1a; 以太网适配器 以太网:连接特定的 DNS 后缀 . . . . . . . : lanIPv4 地址 . . . . . . . . . . . . : 192.168.1.226子网掩码 . . . . . . . . . . . . : 255.255.255.0默认网关. . . . . . . . . . . . . : 192.168.1.1以太网适配器 VM…

IM6ULL学习第18章Linux 系统对中断的处理

栈 什么是栈 栈是一段内存空间。ARM处理器程序的运行过程 ARM芯片属于精简指令集(RISC&#xff1a;Reduced Instruction Set Computing) 特点&#xff1a; 1、对内存只有读和写两种指令&#xff0c; 2、所有的数据运算都是在CPU内部完成的。举例实现aab; CPU 先在内存中读…

竞赛选题 基于深度学习的人脸识别系统

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的人脸识别系统 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/…

相比SiteGPT,用HelpLook创建Chatbot有哪些优势?

在当今快节奏的数字时代&#xff0c;很多企业都在不断寻找新的方法来改善客户支持和简化运营。一种广受欢迎的解决方案是使用AI问答机器人&#xff08;Chatbot&#xff09;。聊天机器人凭借其理解自然语言查询和实时响应的能力&#xff0c;已成为各行业企业不可或缺的工具。 S…

1. PCIE基础入门知识

GT/s 是"每秒十亿次传输" 时间版本速率2003Pcie 1.02.5GT/s2006PCIE 2.05GT/s2010PCIE 3.08GT/s2017PCIE 4.016GT/s 高速接口&#xff1a;雷电接口&#xff08;PCIEx4接口 &#xff09; PCIE接口 工作模式&#xff1a;Endpoint 和 Root Port。 Endpoint&#xff0…