【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


        
相关推荐
ValhallaCoder12 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
董董灿是个攻城狮12 小时前
AI 视觉连载1:像素
算法
wdfk_prog12 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
智驱力人工智能12 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
盟接之桥13 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿13 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘13 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
孞㐑¥13 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
月挽清风13 小时前
代码随想录第十五天
数据结构·算法·leetcode
XX風13 小时前
8.1 PFH&&FPFH
图像处理·算法