【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


        
相关推荐
NONE-C1 天前
动手学强化学习 第6章 Dyna-Q 算法
算法
QT 小鲜肉1 天前
【QT/C++】Qt样式设置之CSS知识(系统性概括)
linux·开发语言·css·c++·笔记·qt
惊讶的猫1 天前
面向无监督行人重识别的摄像头偏差消除学习
人工智能·算法·机器学习
Elias不吃糖1 天前
NebulaChat 框架学习笔记:深入理解 Reactor 与多线程同步机制
linux·c++·笔记·多线程
深度学习机器1 天前
RAG Chunking 2.0:提升文档分块效果的一些经验
人工智能·算法·llm
洋哥网络科技1 天前
centos 7.9搭建安装confluence7
linux·centos·知识图谱
努力学习的小全全1 天前
【CCF-CSP】05-01数列分段
数据结构·算法·ccf-csp
LCG元1 天前
Docker 入门实战:用10个案例带你玩转容器化
linux
遗憾是什么.1 天前
数据结构 -- 栈
数据结构·算法·链表
清风er1 天前
智能座舱开发
算法·计算机视觉