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

欢乐力扣:有效的括号

文章目录

  • 1、题目描述
  • 2、思路
      • 代码


1、题目描述

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

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

在这里插入图片描述

2、思路

 用栈,是左括号则压入栈,右括号的话则出栈比较是否匹配。若不匹配,则返回False。注意:若第一个是右括号,且此时的栈为0,则直接返回False。见代码

代码

class Solution:
    def isValid(self, s: str) -> bool:
        # s 必定为偶数
        if len(s) % 2 != 0: return False 
        hash_map = {
            ']': '[',
            '}': '{',
            ')': '('
        }
        # 一个栈
        stack = []
        for char in s:
            # 若当前char为左括号,则压入栈
            if char not in hash_map:
                stack.append(char)
            # 若当前char为右括号,则出栈进行比较
            else:
                # ====== 注意:若空栈且第一个char为右括号,则直接返回False!========== #
                if len(stack) == 0:
                    return False 
                # 若当前不匹配,则直接返回False
                if stack[-1] != hash_map[char]:
                    return False 
                # 匹配完成,记得出栈。
                else:
                    stack.pop()

        return True if len(stack) == 0 else False   
            

相关文章:

  • FX-C++可变参数
  • webRTC实现一对一通话视频流程
  • SpringBoot 自动配置原理
  • 电能质量有哪些指标?
  • 深入解析pnpm与npm:颠覆传统包管理的技术革命与应用实践
  • 深度解析:主流大模型与智能体框架能力对比及实战指南
  • DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载
  • WPF 与 GMap.NET 结合实现雷达目标动态显示与地图绘制
  • 混沌理论与混沌映射——算法改进初始化创新点之一
  • 48. 旋转图像(C++)
  • 面向对象Demo01
  • 混沌映射可行性恢复粒子群优化算法
  • Day31 | 139. 单词拆分、198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III
  • 微前端教程:使用 Single-SPA 构建模块化应用
  • 江科大51单片机笔记【10】DS1302时钟可调时钟(下)
  • 带权重的词典设计
  • 【Godot4.3】Geometry2D总结
  • 基于Vue 3的智能支付二维码弹窗组件设计与实现
  • MySQL事务深度解析:ACID特性、隔离级别与MVCC机制
  • 歌词相关实现
  • 让“五颜六色”面孔讲述上海故事,2025年上海城市推荐官开启选拔
  • 时隔14个月北京怀柔区重启供地,北京建工以3.59亿元摘得
  • 报告:4月份新增发行的1763亿元专项债中,投向房地产相关领域约717亿元
  • 上海国际电影节推出三大官方推荐单元,精选十部优秀影片
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?
  • 云南一餐馆收购长江野生鱼加工为菜品,被查处罚款