首页 > 其他分享 >力扣20.有效的括号

力扣20.有效的括号

时间:2023-09-21 11:00:50浏览次数:33  
标签:false 示例 力扣 括号 mapped 20 check

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

有效字符串需满足:

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

 

示例 1:

输入:s = "()"
输出:true

 

示例 2:

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

 

示例 3:

输入:s = "(]"
输出:false

 

 

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

栈的经典应用

 1 class Solution {
 2 public:
 3     bool isValid(string s) {
 4         stack<char> check;
 5         map<char,char> mapped;
 6         mapped[')']='(';
 7         mapped[']']='[';
 8         mapped['}']='{';
 9         for (int i=0;i<s.length();++i){
10             if (s[i]=='('||s[i]=='{'||s[i]=='[')
11                 check.push(s[i]);
12             else{
13                 if (check.empty())
14                     return false;
15                 if (check.top()!=mapped.find(s[i])->second){
16                     return false;
17                 } else{
18                     check.pop();
19                 }
20             }
21         }
22         if (check.empty())
23             return true;
24         else
25             return false;
26     }
27 };

 

标签:false,示例,力扣,括号,mapped,20,check
From: https://www.cnblogs.com/coderhrz/p/17719379.html

相关文章

  • 力扣14.最长公共前缀
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例1:输入:strs=["flower","flow","flight"]输出:"fl" 示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。 ......
  • 2023 ICPC 网络赛(1)
    https://pintia.cn/problem-sets/1703372159713652736/exam/problems/type/7IPa?sWorD分析:每个字符必须得至少出现一次立马想到容斥转移就顺序转移就好不过有空间限制因为当前位置的所有状态都由上一个位置转移所以我们用个滚动数组就好含有字符串的写起来就是有点麻烦......
  • VS2022代码格式化
    升级到vs2022后发现之前常用代码格式化插件FormatdocumentonSave不怎么好用了,经常会ctrl+s后代码并没有格式化, 这让我很不爽,查阅资料后发现vs2022内置了代码格式化功能,具体操作如下图所示: 这样既可以了。这个配置文件也是可以修改的,比如我只想要保存时格式化代码而......
  • Windows Server 2012 防火墙如何添加端口例外的方法
    WindowsServer2012防火墙如何添加端口例外的方法https://www.cnblogs.com/seasonzone/p/7099726.html常用端口https://www.cnblogs.com/yzgblogs/p/14511256.html......
  • 春秋云镜 - CVE-2022-32991
    靶标介绍:该CMS的welcome.php中存在SQL注入攻击。访问页面,先注册,使用邮箱加密码登录。bp抓包,后台挂上sqlipy然后去测welcome.php,常用的语句都没成功但过一会就有了结果,注入点在eid这个参数,看payload是bool盲注。直接sqlmap一把梭,脱裤。sqlmap-rsql.txt--dbs--batch......
  • VS2022插件用法大全
    C#MethodsCodeSnippetsC#方法片段代码在代码区直接输入片段关键字+Tab,即可快速生成想要的方法签名https://marketplace.visualstudio.com/items?itemName=jsakamoto.CMethodsCodeSnippetsmethod普通方法imethod接口方法(没有方法体实现)vmethod虚方法smethod静态方法xmet......
  • Node.js 20 —— 几个令人大开眼界的特性
    前言:欢迎来到Node.js20Node.js20已经发布,带来了创新和激动人心的新时代。这个开创性的版本于2023年4月18日首次亮相,并将在2023年10月发布长期支持(LTS)版本,并且将持续支持至2026年4月,下面小编就为大家介绍一下Node.js20的几个新特性:1.Node.js权限访问Node.js20正式推出了......
  • 2019, XII Samara Regional Intercollegiate Programming Contest
    \(ProblemA.RoomsandPassages\)倒着处理每个位置正数的最前部的位置。如果是正数,显然答案为后一个位置的答案\(+1\)。如果是负数且前面出现过相应的正数,答案要对这个区间长度\(-1\)的取\(min\)。voidsolve(){intn=read();vector<int>a(n+2),cnt(n+2,-1)......
  • 9.20
    学习递归递归是一种在函数中调用自身的方法,每次递归调用之后,问题的规模越来越接近这个限制条件,直到满足限制条件才停止递归求n的阶乘可以用循环和递归importjava.util.Scanner;publicclassMain{publicstaticintfactorial(intx){if(x==1){......
  • 9.20随笔
    1.想到为什么要考研,算是找到了一个比较充分理由,是想的比较清楚的,因为觉得高考并不是我的顶点,还没有走到自己的巅峰,什么时候才能达到一生的顶峰呢?考上研究生吗,感觉是,因为家里还没有出过研究生,所以就更想开创先例了。2.觉得老师们都很强啊,都是985的博,比我们算是高了几个层次,有时候......