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

LeetCode.20.有效的括号

题目描述:
 

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

有效字符串需满足:

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

输入输出实例:

思路:这道题目我们可以使用栈来解决,建立一个空列表stack,这个栈我们用来存放左括号。遍历字符串s,如果当前符号是左括号我们就放到栈里面。如果当前是右括号,(栈不空的情况下)我们取出最后一个存放到栈中的左括号看是否与当前右括号对应——因此我们可以建立一个字典用来存储括号的对应关系,如果对应我们就接着往下遍历;如果当前栈为空或者取出来的左括号不与当前右括号对应我们就返回False。最后return的时候我们还要看栈是否为空,如果为空我们返回True,如果不为空说明左右括号数量并不匹配我们返回False。根据上述思路有以下代码:

class Solution:def isValid(self, s: str) -> bool:#使用栈stack = []#建立括号对应关系fx_map = {')':'(','}':'{',']':'['}for char in s:#将左括号存进去if char in fx_map.values():stack.append(char)#碰到右括号elif char in fx_map.keys():#如果栈为空或者是上一个左括号与当前右括号不匹配if not stack or stack.pop()!=fx_map[char]:return False#最后栈是空的才行return True if len(stack)==0 else False

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 局部场电位LFP
  • 【Python快速入门和实践016】Python常用脚本-对视频抽取指定帧数并保存
  • Oracle(52)分区表有哪些类型?
  • RCE漏洞基础初了解
  • Power Query抓取多页数据导入到Excel
  • C# 解析html
  • FFmpeg源码:av_buffer_is_writable、av_buffer_realloc函数分析
  • Mybatis声明变量并使用
  • 服务器硬件及RAID配置
  • 基于springboot的乐享田园系统
  • Linux系统性能调优技巧
  • 学习计算机网络(三)——IP地址
  • Golang实现简单的HTTP服务,响应RESTful请求判断形状大小
  • 理解张量拼接(torch.cat)
  • cmseasy的两个注入漏洞
  • [deviceone开发]-do_Webview的基本示例
  • 《Java编程思想》读书笔记-对象导论
  • 【笔记】你不知道的JS读书笔记——Promise
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • canvas 绘制双线技巧
  • idea + plantuml 画流程图
  • JavaScript创建对象的四种方式
  • Java精华积累:初学者都应该搞懂的问题
  • KMP算法及优化
  • maven工程打包jar以及java jar命令的classpath使用
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用 @font-face
  • 世界上最简单的无等待算法(getAndIncrement)
  • 一些css基础学习笔记
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #define用法
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)SpringCloud 整合Python
  • (二十六)Java 数据结构
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (小白学Java)Java简介和基本配置
  • (自用)网络编程
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET C# 操作Neo4j图数据库
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET DataGridView数据绑定说明
  • .NET WPF 抖动动画
  • .NET 指南:抽象化实现的基类