leetcode20. 有效的括号 🌟

题目:

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

  有效字符串需满足:

    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

示例 1:

  输入: "()"
  输出: true
示例 2:

  输入: "()[]{}"
  输出: true
示例 3:

  输入: "(]"
  输出: false
示例 4:

  输入: "([)]"
  输出: false
示例 5:

  输入: "{[]}"
  输出: true

来源:力扣(LeetCode)

解答:

 1 class Solution:
 2     def isValid(self, s: str) -> bool:
 3         if len(s) % 2 != 0:
 4             return False
 5
 6         open_close_map = {
 7             ‘}‘: ‘{‘,
 8             ‘)‘: ‘(‘,
 9             ‘]‘: ‘[‘
10         }
11         stack = []
12         for bracket in s:
13             if bracket in open_close_map.values():
14                 stack.append(bracket)
15             else:
16                 if stack and stack.pop() != open_close_map[bracket]:
17                     return False
18
19         return not stack

原文地址:https://www.cnblogs.com/catyuang/p/11110690.html

时间: 2024-08-08 06:13:41

leetcode20. 有效的括号 🌟的相关文章

LeetCode20——有效的括号

在记事本中写算法题和在纸上写其实感觉差不多,反正是不能进行调试.想起某高手的话,写代码要做到"人机合一",写高级语言时(指的是 C 和 C++)脑海中要知道当前写的代码对应的反汇编代码,也就是要深入了解编译器对高级语言的处理.什么时候能达到这样的境界呢? LeetCode 题库的第 20 题--有效的括号 我做题的习惯跟考试的习惯差不多,先找会做的,然后再慢慢啃不会的.本着一个原则,不用编译器,不去找答案,不会说明基础不牢固,继续补基础. 题目我截图过来. 上面的图是题目和给出的示例,

<每日 1 OJ> -LeetCode20. 有效的括号

题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合.左括号必须以正确的顺序闭合.注意空字符串可被认为是有效字符串. 示例 1: 输入: "()"输出: true示例 2: 输入: "()[]{}"输出: true示例 3: 输入: "(]"输出: false示例 4: 输入: "([)]"输出: false示例 5: 输入

LeetCode20 栈·有效的括号(C++)

题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认为是有效字符串. 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: fa

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

leetcode栈--5、valid-parentheses(有效括号)

题目描述 Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid. The brackets must close in the correct order,"()"and"()[]{}"are all valid but"(]"and"([)]"are not.

shell中各种括号的作用

小括号里是命令大括号是变量值   一.小括号,圆括号() 1.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用.括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格. ②命令替换.等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令.有些shell不支持,如tcsh. ③用于初始化数组.如:array=(a b

数据结构(括号序列,线段树):ZJOI 2007 捉迷藏

[题目描述] Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达. 游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯.在起初的时候,所有的灯都没有被打开.每一次,孩子们只会躲 藏在没有开灯的房间中,但是为了增加刺激性,孩子们会要求打开某个房间的电灯或者关闭某个房间的电灯.为了评估某一次

南阳OJ-2 括号配对 (数据结构-栈的应用)

括号配对问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=100),表示有N组测试数据.后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组.数据保证S中只含有"[","]","(",")"四种字符 输出 每组输入数据的输出占一行,

正则表达式匹配括号中的字符,不包括括号

(?<=\()\S+(?=\)) (?<=exp)是以exp开头的字符串, 但不包含本身.(?=exp)就匹配惟exp结尾的字符串, 但不包含本身. (?<=\()    也就是以括号开头, 但不包含括号. (?=\)) 就是以括号结尾 \S 匹配任何非空白字符.等价于[^ \f\n\r\t\v].+表示至少有一个字符. (?<=\()\S+(?=\))  就是匹配以 (开头, )结尾的括号里面最少有一个非空白字符的串, 但不包括开头的(和结尾的)