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

leetcode 20.有效括号

20. 有效的括号 - 力扣(LeetCode)

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
       
        for  i in s :
            if i  in ('(','{','[' ):
                stack.append(i)
            elif i in (')' ):
                # 这种情况是 栈弹出元素为空时候 ,右半部分的括号多出来一些 比如: [()]} 
                if not stack:
                    return False
                temp=stack.pop()
                if temp !='(':
                    return False 
            elif i in('}'):
                if not stack:
                    return False
                temp=stack.pop()
                if temp !='{':
                    return False 
            elif i in(']'):
                if not stack:
                    return False
                temp=stack.pop()
                if temp !='[':
                    return False 
        if stack:  # 这种情况是,右半部分的括号全部匹配结束后, 栈元素还有剩余( 即左括号多了一部分) 
            return False
        return True       

代码随想录中的 先 强行匹配 做了映射对应关系,  然后再判断映射的右半部分 是不是 符合真实的右侧部分的信息 ,

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
       
        for  i in s :
            # if i  in ('(','{','[' ):
            #     stack.append(i)
            if i == '(':
                stack.append(')')
            elif i== '[':
                stack.append(']')
            elif i == '{':
                stack.append('}')
            # elif i in (')' ):
            #     # 这种情况是 栈弹出元素为空时候 ,右半部分的括号多出来一些 比如: [()]} 
            #     if not stack:
            #         return False
            #     temp=stack.pop()
            #     if temp !=i:
            #         return False 
            # elif i in('}'):
            #     if not stack:
            #         return False
            #     temp=stack.pop()
            #     if temp !=i:
            #         return False 
            # elif i in(']'):
            #     if not stack:
            #         return False
            #     temp=stack.pop()
            #     if temp !=i:
            #         return False 
            else:
                if not stack:
                    return False
                temp=stack.pop()
                if temp !=i:
                    return False 
        if stack:  # 这种情况是,右半部分的括号全部匹配结束后, 栈元素还有剩余( 即左括号多了一部分) 
            return False
        return True       

http://www.dtcms.com/a/90645.html

相关文章:

  • 网络运维学习笔记(DeepSeek优化版) 023 HCIP-Datacom OSPF邻居建立过程、四种网络类型、OSPF高级配置、LSA类型与管理
  • 企业级部署zabbix分布式监控系统
  • C++数据结构(搜索二叉树)
  • 【SOC 芯片设计 DFT 学习专栏 -- IDDQ 测试 与 Burn-In 测试】
  • 使用CSS3实现炫酷的3D视差滚动效果
  • 综合小实验之电视机
  • <数据集>手势识别数据集<目标检测>
  • fpga pcie
  • javaSE.多维数组
  • 后大模型时代智能体将成为“新宠”
  • 使用go实现导入Rxcel数据到数据库并渲染到页面上
  • java项目之基于ssm的个人博客网站(源码+文档)
  • 【MySQL篇】索引特性,索引的工作原理以及索引的创建与管理
  • Git 使用指南:从设置用户信息到项目提交的全流程教程(持续更新)
  • Electron 项目开机自启动
  • 【netstat和ss】Windows和Linux下的,网络连接排查简单案例
  • 【前端面试题】计算机网络相关
  • ROS2 部署大语言模型节点
  • 【AVRCP】深度解析 AVRCP 定时器机制:从 TRCP/TMTC/TMTP 看蓝牙遥控的实时性保障
  • HAL_TIM_IC_CaptureCallback 函数
  • 蓝桥杯1463:货物摆放问题详解——数学思维与代码优化
  • 【PICO】开发环境配置准备
  • 小爱控制OK影视搜索视频-HomeAssistant详细自动化流程
  • 车载通信方案为何选择CAN/CANFD?
  • 聚水潭数据集成到MySQL的最佳实践分享
  • docker desktop拉取镜像出问题
  • Isaac Sim与Isaac Lab初使用
  • 嵌入式单片机程序的映像文件解读
  • Windows下VSCode的安装
  • 【C++项目实战】:基于正倒排索引的Boost搜索引擎(1)