Day26 代码随想录打卡|栈与队列篇---有效的括号

news2024/11/27 6:34:06

题目(leecode T20):

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

方法:括号匹配是栈的经典应用,首先我们要分析括号不匹配的几种情况:

1:{[(}]} 这首情况是由于括号类型不匹配所造成的

2:(([])  这种情况是左边多了一个括号,右边无法和他匹配

3:{()}) 这种情况是右边多了一个括号,左边无法和他匹配

分析了这三种情况,我们就可以得出相应的写法,在左边括号入栈时,我们输入与其相匹配的右括号,这样在分析右括号时我们直接进行判断相等即可,更加容易操作。在右边括号匹配时,如果出现栈已经为空,则是出现了第三种错误,右边多了括号;如果出现括号与当前栈中元素不一致,则出现了第一种错误,类型不匹配;如果已经匹配完,但栈不为空,还有元素,则出现了第二种错误,左边多了括号。因此我们处理完字符串后,只需要判断当前栈是否为空,如果为空的话就说明已经匹配成功;如果栈不为空的话,就说明不成功。

题解:
 

class Solution {
public:
    bool isValid(string s) {
        if(s.size() % 2 != 0) return false;         //预判断,如果字符串为奇数的话肯定不匹配
        stack<char> st;
        for(int i = 0; i < s.size(); i++){
            if(s[i] == '(') st.push(')');
            else if(s[i] == '[') st.push(']');
            else if(s[i] == '{') st.push('}');
            else if(st.empty() || st.top() != s[i]) return false; //第一三种情况
            else st.pop();
        }
        return st.empty();            //第二种情况
    }
};

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

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

相关文章

Ubuntu系统搭建Tipask开源问答系统并发布公网分享好友远程访问

文章目录 1. 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3 Cpolar稳定隧道&#xff08;本地设置&#xff09; 4. 公网访问测试5. 结语…

论文阅读记录--关于水文系统的传递函数

文章目录 J-schuite的文章,地下水系统的响应的功率谱分析--传递函数1. 什么是冲激响应函数与传递函数?2. 地下水流系统中传递函数的求解3. J-schuite文章中传递函数的复现J-schuite的文章,地下水系统的响应的功率谱分析–传递函数 1. 什么是冲激响应函数与传递函数? 在信号…

Java进阶10 IO流

Java进阶10 IO流 IO流就是数据传输。I为input的缩写&#xff0c;表示输入读取&#xff1b;O为out的缩写&#xff0c;表示输出写出。 一、IO流体系结构 ♥巧记区分tips&#xff1a;以Stream结尾的是字节流&#xff1b;以Reader、Writer结尾的都是字符流 二、字节输出流FileOu…

【Flutter】极光推送配置流程(VIVO/OPPO/荣耀厂商通道) 章三

前言 很高兴大家来看小编写的文章&#xff5e;&#xff5e; 继【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 继【Flutter】极光推送配置流程(小米厂商通道) 章二 接下配置VIVO/OPPO/华为荣耀的厂商通道 所有截图来源于公司项目&#xff0c;所以会有大量马赛克&am…

【Linux 系统】多线程(生产者消费者模型、线程池、STL+智能指针与线程安全、读者写者问题)-- 详解

一、生产者消费者模型&#xff08;重点&#xff09; 如图&#xff0c;在生活中&#xff0c;学生就是消费者角色&#xff0c;工厂是真正的生产者角色&#xff0c;那么超市是什么呢&#xff1f;为什么需要超市&#xff1f;超市是交易场所。我们的家附近不一定有工厂&#xff0c;而…

子元素水平垂直都居中的实现

在网页布局中&#xff0c;如何实现子元素在水平方向和垂直方向居中&#xff0c;如图所示&#xff1a; 我知道的有这样的两种方式&#xff1a; 1.使用弹性布局实现 2.使用定位和平移实现 另外还有以下两种常用情况 3.窗口在整个屏幕水平垂直居中&#xff0c;还可以使用绝对定位…

COMSOL粗略估算计算时间

COMSOL粗略估算模型计算时间 针对反复修改调试的有限元模型&#xff0c;需要大致估算有限元模型的计算时间。经查阅&#xff0c;模型求解的自由度数和求解时间密切相关。 测试条件 测试模型为声-固耦合模型&#xff0c;电脑内存32G&#xff0c;CPU-i7-10700K&#xff0c;核显…

产品经理必备的API技术知识

很多小伙伴在刚成为产品经理的时候已经对自己手中的业务非常熟练了&#xff0c;但还是免不了听到开发的吐槽&#xff1a;“怎么排了这么多需求&#xff0c;这么多接口做都做不完&#xff01;”产品经理只能一脸懵的表示&#xff1a;接口&#xff1f;那是什么东西&#xff1f;我…

IDEA项目代码修改后不自动生效需要执行mvn clean install才生效

背景 IDEA代码修改之后&#xff0c;启动测试发现不生效&#xff0c;只有重新mvn clean install之后才能加载到改动的代码 解决方法 严重怀疑是idea的配置问题导致的&#xff0c;没有什么特别好的办法&#xff0c;只能删配置重新导入 1、删除 .idea文件夹 以及 所有.iml文件 …

Spring原理

目录 一、Bean作用域 1、Bean作用域概念 2、Bean的六种作用域 3、举例演示bean的几种作用域 二、Bean的生命周期 1、Bean对象的生命周期 2、演示Bean对象的生命周期 三、SpringBoot的自动配置 1、概念 2、spring将对象存入容器中的原理 一、Bean作用域 在前面spring…

洗地机哪个牌子好性价比高又实惠?高性价比洗地机推荐【避坑指南】

洗地机是一种智能清洁家具&#xff0c;具有强大的清洁能力&#xff0c;可快速有效地清洁各种地面污渍&#xff0c;操作简便&#xff0c;省时省力。其一键操作功能使其易于上手&#xff0c;无需频繁清洗拖布和更换水&#xff0c;大大提高了清洁效率。部分高端洗地机还具备智能感…

家用洗地机哪款最好用?附热门洗地机品牌推荐,看完这篇不踩坑

随着技术的不断发展&#xff0c;现在的洗地机功能已经越来越强大了&#xff0c;它可以高效的扫地、拖地、不用手动清洗滚刷&#xff0c;甚至有些中高端型号还能边洗地边除菌&#xff0c;远程操控自清洁&#xff0c;简直就是家居清洁的小能手&#xff01;那么&#xff0c;家用洗…

Python GraphQL服务器实现库之tartiflette使用详解

概要 Tartiflette是一个为Python编写的GraphQL服务器实现,它建立在现代异步编程库如asyncio之上,提供了高性能的GraphQL执行环境。Tartiflette专注于提供最佳的开发者体验,支持最新的GraphQL特性。 安装 安装Tartiflette相对简单,但需要依赖于一些系统级的库。 首先,需…

【MATLAB源码-第207期】基于matlab的单相光伏并网系统仿真,并网策略采用基于扰动观测法的MPPT模型和使用电压电流双闭环SPWM控制。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 本文将重点分析光伏发电最大功率点跟踪&#xff08;MPPT&#xff09;技术和逆变器的并网控制技术&#xff0c;并在Simulink环境下建立模拟系统&#xff0c;以体现这些技术的应用与效果。文章结构如下&#xff1a;首先简介光伏…

如何在CentOS7本地搭建ONLYOFFICE办公套件结合内网穿透实现公网访问

文章目录 1. 安装Docker2. 本地安装部署ONLYOFFICE3. 安装cpolar内网穿透4. 固定OnlyOffice公网地址 本篇文章讲解如何使用Docker在本地服务器上安装ONLYOFFICE&#xff0c;并结合cpolar内网穿透实现公网访问。 Community Edition允许您在本地服务器上安装ONLYOFFICE文档&…

12个乒乓球,有一个次品,不知轻重,用一台无砝码天平称三次,找出次品,告知轻重?

前言 B站上看到个视频&#xff1a;为什么有人不认可清北的学生大多是智商高的? 然后试了下&#xff0c;发现我真菜 自己的思路&#xff08;失败&#xff09; 三次称重要获取到12个乒乓球中那个是次品&#xff0c;我想着将12个小球编号&#xff0c;分为四组&#xff0c;每组…

数学老师们

小学三年级之前的数学老师&#xff0c;包括学前班给过我零分的数学老师&#xff0c;模样、姓名都不记得了。能回忆起来的最早的数学老师是四、五年级的李成娥老师。 李老师四十岁左右&#xff0c;短发&#xff0c;温和、爱笑&#xff0c;尤其是在班主任张老师的衬托下&#xf…

等保测评技术方案(五)

&#xff08;八&#xff09;漏洞扫描方案 1.参与人员 乙方工程师&#xff1a;谭 然、张 剑等。 范围经过双方确认&#xff0c;此次评估的对象包括&#xff1a; 2.网络设备 IP 地址 设备型号 备注 / / / / / / 以现场测评实际数据为准 3.应用系统 地址 …

全球静态IP购买:全面指南与实用建议

在数字化时代&#xff0c;互联网连接已成为企业和个人日常运营和生活的核心。而全球静态IP地址&#xff0c;作为网络身份的独特标识&#xff0c;其重要性不言而喻。静态IP地址提供了稳定的网络连接和更高级的网络管理功能&#xff0c;使得远程访问、服务器托管、网络安全等应用…

MPAndroidChart 详细使用 - BarChart

chart下面的方法 getDescription().setEnabled(boolean enabled);//设置描述是否显示 setPinchZoom(boolean enabled);//设置x轴和y轴能否同时缩放。默认是否 setScaleEnabled(boolean enabled);//是否支持缩放 setScaleXEnabled(boolean enabled);//启用/禁用x轴上的缩放 setS…