LeetCode.20.有效的括号

news2024/12/26 9:22:07

题目描述:
 

给定一个只包括 '('')''{''}''['']' 的字符串 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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云原生和安装Ubuntu 22系统

一.云原生简介 2004年开始,Google已在内部大规模地使用容器技术。 2008年,Google将 Cgroups合并进入了Linux内核。2013年,Docker项目正式发布。2014年,Kubernetes项目正式发布。2015年,由Google、Redhat 以及微软等大…

【电路笔记】-π 型衰减器

π 型衰减器 文章目录 π 型衰减器1、概述2、等阻抗π-型衰减器3、π-型衰减器示例14、不等阻抗π-型衰减器5、π-型衰减器示例26、平衡π-型衰减器π-型衰减器常用于射频和微波传输线路中,可以是平衡或非平衡设计 1、概述 π-型衰减器之所以如此命名,是因为其基本布局和设计…

图书借阅会员员工管理小程序开发

图书借阅微信小程序全面升级方案 本图书借阅微信小程序旨在打造一站式、高效便捷的图书管理与借阅平台,支持多书馆无缝切换与一键同步图书信息,为会员提供流畅的在线借书体验,同时赋予员工强大的管理工具,确保从会员到书馆的每一…

File的概述和构造方法

一.路径: 相对路径开头不带盘符。 二.File: 1.File对象: File对象就表示一个路径,可以是文件的路径,也可以是文件夹的路径, 这个路径可以是存在的,也可以是不存在的。 2.File对象常见的构造…

C:指针学习-指针变量—学习笔记

今日伊雷娜: 目录 前言: 1、字符指针变量 1.1 使用字符指针存放字符 1.2 使用字符指针变量存放字符串 2、数组指针变量 2.1 什么是数组指针变量? 2.2 数组指针变量初始化 2.3 关于数组指针类型的解析 3、函数指针变量 3.1 函数地址 …

如何将CSDN文章导出为pdf文件

第一步: 打开想要导出的页面,空白处点击鼠标右键⇒点击“检查”或“check”,或直接在页面按F12键。 第二步: 复制以下代码粘贴到控制台,并按回车。 若提示让输入“允许粘贴”或“allow pasting”,按提示…

InnoDB锁机制和事务管理介绍_案例解答

前言 本文对《Innodb 锁机制和事务管理介绍》这篇文章中的思考题进行解答。查看完解答后如果对原理有疑问的,可以重新看下原文帮助理解。 初始化信息 验证环境:8.0.28 MySQL Community Server,InnoDB引擎,RR隔离级别。 初始化信…

苍穹外卖项目DAY03

苍穹外卖项目Day03 1、菜品管理 1.1、公共字段自动填充 1.1.1、问题分析 业务表中的公共字段: 问题:代码冗余、不便于后期维护 1.1.2、实现思路 自定义注解AutoFill,用于标识需要进行公共字段自动填充的方法自定义切面类AutoFillAspect&…

Mybatis和Mybatis-plus区别和联系

MyBatis 和 MyBatis-Plus 是两个用于 Java 数据持久层的框架,它们在功能和使用场景上有所不同。如果项目需要高度自定义和复杂的 SQL 逻辑处理,且开发团队熟悉 SQL,那么 MyBatis 是一个更好的选择。相反,如果希望提高开发效率&…

EPLAN P8 2024-操作记录

目录 设备标识符包含页面 效果如下​编辑 步骤如下 连接点代号的分隔符创建 效果如下 步骤如下 中断点连接排序 效果如下 步骤如下 触点关联参考位置调整、 效果如下 步骤如下 端子排定义 效果如下 步骤如下 端子排连接 效果如下 离散端子操作如下 连接…

操作系统基础知识:调度器、闲逛进程,闲逛进程的特性,什么事件会触发“调度程序”?

被调度程序选中和时间用完由调度程序引起,调度程序决定: 让谁运行由调度算法决定;运行多长时间由时间片大小决定。 什么事件会触发“调度程序”? 1.创建新进程 2.进程退出 3.运行进程阻塞 4.I/0中断发生(可能唤醒某些阻塞进程) 非抢占式调…

「每周只上一天班」谷歌散漫制度遭前CEO怒斥:输给OpenAI,再下去要输创业公司了

「谷歌决定拥抱生活与工作平衡:更早下班、远程工作,胜过在竞争中取胜。」施密特说道。「而说到初创公司,他们之所以能成功,是因为人们在拼命地工作。」 在本周三公布的一份斯坦福大学公开课视频中,谷歌前 CEO 埃里克・…

机器学习 之 sklearn的使用介绍和如何找到API

scikit-learn(简称 sklearn)是基于python语言的一个第三方机器学习库,它提供了简单而有效的工具来进行数据分析和建模。建立在numpy pandas SciPy和Malpotlib库上,下面是对如何使用 sklearn 以及如何找到其 API 的一个基本介绍&am…

算法:DFS解决FloodFill算法

目录 题目一:图像渲染 题目二:岛屿数量 题目三:岛屿的最大面积 题目四:被围绕的区域 题目五:太平洋大西洋水流问题 题目六:扫雷游戏 题目七:衣橱整理 题目一:图像渲染 有一幅…

Unity MessagePack代替Json让你的数据更小还更快

Unity MessagePack代替Json让你的数据更小还更快 前言项目下载并安装MessagePack编写测试代码添加并设置脚本生成AOT代码编写加载AOT代码文件运行效果 参考 前言 前端给后端发的Json数据有点大,使用MessagePack优化一下(MessagePack原理官网解释的很清晰…

前端案例:极速问诊项目(移动端自适应)(HTML+CSS+JS)

一个简单的移动端案例,模拟不同设备下逻辑分辨率不同,宽高自适应 正常打开整体布局 打开 f12 (ctrl shift M)或者点击左上角图标,将其模拟为移动端设备 在移动设备iPhone6/7/8,逻辑分辨率375的整体布局 其banner图尺…

1.9万亿字节跳动,没钱了?

字节再融资 近期投行圈热度最高的事情,是字节跳动正在积极与相关金融机构展开洽谈,期望对其现有的 50 亿美元贷款进行再融资,期限三年。 若是再融资能成,大概率会成为中国借款人年内进行的最大规模贷款再融资交易事件。 这下可好了…

Cesium for Unreal 打包像素流去掉 CLICK TO START

文章目录 1. 像素流去掉 CLICK TO START问题分析1. 像素流去掉 CLICK TO START 问题 分析 在后缀添加参数:MatchViewportRes=true&HoveringMouse=true 例如: http://192.168.0.106:5027/?MatchViewportRes=true&HoveringMouse

【课程总结】day24(上):大模型三阶段训练方法(LLaMa Factory)

前言 本章我们将通过 LLaMA-Factory 具体实践大模型训练的三个阶段,包括:预训练、监督微调和偏好纠正。 大模型训练回顾 训练目标 训练一个医疗大模型 训练过程实施 准备训练框架 LLaMA Factory是一款开源低代码大模型微调框架,集成了业…

Spring Security 01.两个功能

在 Spring Security 的架构设计中,认证(Authentication)和授权(Authorization)是分开 的,在本书后面的章节中读者可以看到,无论使用什么样的认证方式,都不会影响授权,这是…