当前位置: 首页 > backend >正文

【leetcode】20. 有效的括号

文章目录

    • 题目
    • 题解
      • 使用栈

题目

20. 有效的括号

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

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = “()”

输出:true

示例 2:

输入:s = “()[]{}”

输出:true

示例 3:

输入:s = “(]”

输出:false

示例 4:

输入:s = “([])”

输出:true

题解

使用栈

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 Falseelse:stack.pop()return True if not stack else False
http://www.xdnf.cn/news/10793.html

相关文章:

  • ​链表题解——回文链表【LeetCode】
  • Go 为何天生适合云原生?
  • 前端下载文件,文件打不开的问题记录
  • 【数据分析】第四章 pandas简介(2)
  • AI与区块链:数据确权与模型共享的未来
  • recipes中声明 DEPENDS += “virtual/kernel“ 的效果
  • 『uniapp』把接口的内容下载为txt本地保存 / 读取本地保存的txt文件内容(详细图文注释)
  • Qt开发:QThreadPool的介绍和使用
  • 如何合理设计缓存 Key的命名规范,以避免在共享 Redis 或跨服务场景下的冲突?
  • 【QT】在Qt6的`QTextEdit`中,同一行更新内容
  • 浅谈边缘计算
  • K8s基础一
  • QUIC——UDP实现可靠性传输
  • 数据结构:递归的种类(Types of Recursion)
  • 云计算 Linux Rocky day03
  • 电子电路:什么是晶振?
  • Java项目OOM排查
  • 云原生架构下的现代化应用治理:理念、挑战与实践路径
  • CSS 表单设计与实现技巧
  • Apache Iceberg 如何实现分布式 ACID 事务:深度解析大数据时代的可靠数据管理
  • Spring @Value注解的依赖注入实现原理
  • Unity——QFramework工具 AciontKit时序动作执行系统
  • React 第五十一节 Router中useOutletContext的使用详解及注意事项
  • Lua和JS的垃圾回收机制
  • Fuse.js:打造极致模糊搜索体验
  • 网络安全-等级保护(等保) 3-3 GB/T 36627-2018 《信息安全技术 网络安全等级保护测试评估技术指南》-2018-09-17发布【现行】
  • 湖北理元理律师事务所:系统性债务化解中的法律技术革新
  • 0518蚂蚁暑期实习上机考试题1:数组操作
  • 实现仿中国婚博会微信小程序
  • Redis缓存-数据淘汰策略