【leetcode】20. 有效的括号

文章目录

题目

20. 有效的括号

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

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

示例 1:

输入:s = "()"

输出:true

示例 2:

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

输出:true

示例 3:

输入:s = "(]"

输出:false

示例 4:

输入:s = "([])"

输出:true

题解

使用栈

python 复制代码
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        # 栈: "(", "{", "[", ")", "}", "]"
        stack = []
        mapping = {
            '(': ')',
            '[': ']',
            '{': '}'
            }
        for item in s:
            if item in mapping.keys():
                stack.append(mapping[item])
            # 按照顺序读取的,使用 if not stack 来判断栈是否为空
            elif not stack or stack[-1] != item:
                return False
            else:
                stack.pop()
        return True if not stack else False


        
相关推荐
汉克老师15 分钟前
GESP5级C++考试语法知识(十七、二分算法提高篇(二))
c++·算法·二分算法·gesp5级·gesp五级·二分算法易错点
叶小鸡19 分钟前
小鸡玩算法-力扣HOT100-动态规划(下)
算法·leetcode·动态规划
cui_ruicheng37 分钟前
Linux网络编程(七):TCP Socket编程与EchoServer
linux·服务器·网络·tcp/ip
feasibility.43 分钟前
nvidia-smi 失灵,显存凭空消失?—— NVML 驱动版本错配的记录
linux·运维·服务器·经验分享·nvidia·驱动
信奥胡老师1 小时前
B3968 [GESP202403 五级] 成绩排序
数据结构·算法
Hwang2521 小时前
Attention 机制 02 - Add&Norm 残差机制
算法
东风破_1 小时前
LeetCode 209 · 滑动窗口经典题型
算法
Irissgwe1 小时前
二、Linux基础开发工具(2)
linux·makefile·gcc·g++·
计算机安禾1 小时前
【c++面向对象编程】第48篇:Lambda表达式与std::function:OOP中的函数式编程
java·c++·算法
basketball6161 小时前
Linux sed 和 awk 命令使用方法
linux·运维·chrome