首页 > 其他分享 >leetcode 20. 有效的括号(栈的解法)

leetcode 20. 有效的括号(栈的解法)

时间:2022-10-27 20:01:23浏览次数:54  
标签:False return hashmap pop stack 括号 20 leetcode


题目在这:https://leetcode-cn.com/problems/valid-parentheses/

括号匹配问题,立马想到用栈去做.

遇到左括号进栈,遇到右括号匹配当前栈顶,相同就把栈顶的元素弹出,不同直接返回False

建立字典存储左右括号的对应.

有几个左括号一定有几个有括号,所以如果括号总数不是偶数,必然不对。可以先判断字符串长度是不是偶数.

上代码!

s = '{}[]}{'
hashmap = {'(':')','[':']','{':'}'}
stack = []
if len(s)%2:
return False
for i in s:
if i in hashmap.keys():
stack.append(i)
elif not stack or hashmap[stack.pop()]!=i:
return False
if stack:
return False
else:
return True

代码中唯一容易错的地方解释一下:

elif not stack or hashmap[stack.pop()]!=i:

这句话的意思是:
stack这个栈里面为空则进入elif 返回False。

需要注意的点 :

1. 给的括号是 ‘} {’ 这样的情况,先匹配到左括号,不进栈,此时栈中为空,没有括号和 ‘}‘ 相匹配。所以直接返回False
相同的情况 还有 “[]{}}{” 同理 前面的 []{} 匹配完了,后面又是直接一个 ‘}’ 没有左括号和他匹配(栈中为空),这时候直接返回False。

2, 这句话里面的 not stack 必须写到 or 前面。
如果写到后面,当栈为空的时候,执行了pop会直接报错.
而or的机制大家都知道,or前面为真直接进入了,不会判断后面了,所以不会报错后面的pop了…


标签:False,return,hashmap,pop,stack,括号,20,leetcode
From: https://blog.51cto.com/u_15849381/5801757

相关文章

  • 力扣(leetcode) 1035. 不相交的线 (公共子序列)(动态规划)
    题目在这:https://leetcode-cn.com/problems/uncrossed-lines/这道题就是考一个公共子序列的问题,不过这种算法对于我这种小白来说还是难,毕竟leetcode上第一次刷到动态规划......
  • 力扣(leetcode) 12. 整数转罗马数字 (哈希映射表解法)、(暴力匹配)
    题目:https://leetcode-cn.com/problems/integer-to-roman/题目很好理解,并且容易想到解法。题目要求输入范围是1-3999可以理解为在每一位上找到相应的罗马数字表示即可比如......
  • 力扣(leetcode) 692. 前K个高频单词
    题目:https://leetcode-cn.com/problems/top-k-frequent-words/这个题用python解起来还是挺简单的,用字典就行了。key存单词value存出现的次数dic={}res=[]foriinr......
  • 【Coel.游记】【成王败寇】CSP-S 2022 游记
    前言CSP-S2022,是我第一次参加的S组比赛,也可能是最后一次了。正如标题所说的“成王败寇”,这次比赛,成功就能继续走下去,失败就只能退役。未来会怎么样?拭目以待吧……\(......
  • Leetcode908思路
    为什么写这篇文章?相信不少人在看官方的leetcode题解的时候,都遇到了不少困难。leetcode官方的题解,省略了不少细节。导致在读的时候非常难懂。所以,我在这里写出我对官方答案......
  • 2019软工期中考试初版实现
    第七次全国人口普查登记(20分)1、项目需求:开展第七次全国人口普查,将为编制“十四五”规划提供重要信息支持;推动实现人口与经济社会、资源环境协调发展,为深化供给侧结构性改......
  • [JSOI2010]连通数
    传送地址:https://www.luogu.com.cn/problem/P4306题目描述度量一个有向图连通情况的一个指标是连通数,指图中可达顶点对个的个数。如图顶点 11 可达 1,2,3,4,51......
  • 【闲话】2022.10.27
    啊,离CSP第二轮不远了(悲虽然退不了役,但还是有点在意的以及谁帮帮我调一下这个啊本机一直对,CF一直T孩子人都傻了今天考试就是A每写YES,无了幸亏B稍微骗了20分,没爆零......
  • CSP 2022 S2 游记
    可能更好的阅读体验Day-3得知放在杭州学军海创园区考试,说是要住全季酒店,要全寄的节奏。义乌的怎么在杭师大啊,看来不大可能见到FLY了。Day-2真·全寄酒店,整个考点......
  • P4349 [CERC2015]Digit Division
    题目传送门思路以下纯考场思路。今天模拟赛考到了这题的加强版,然后预处理写炸了,\(100\)变成\(70\),当是给CSP攒rp了。首先一眼看到题目可能会没有思路,没什么关系,......