leetcode栈与队列(一)-有效的括号
题目
. - 力扣(LeetCode)
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串 s
,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([])"
输出:true
提示:
1 <= s.length <= 104
s
仅由括号'()[]{}'
组成
思路
先建立一个栈stack,用来存取从s中读取的字符串
遍历s中所有的字符串,需要三个分支来对其进行分类:
当前元素是'(','{','['中的一个时,这时候就向stack中添加一个该元素对应的另一个符号,比如该元素时‘(’就添加进来‘)’这样一个,对应添加,对于后面的判断会更方便
当stack是空的时候或者该元素不等于stack的最后一个元素时,就说明无法完成配对,即可返回False结束即可
不满足以上两个条件时,那就说明该元素是')',']','}'中的一个,即弹出stack最后一个元素即可
代码
class Solution:def isValid(self, s: str) -> bool:if len(s) == 0 or len(s) ==1:return Falsestack = []for i in s:if i == '(':stack.append(')')elif i == '{':stack.append('}')elif i == '[':stack.append(']')elif len(stack)==0 or stack[-1]!=i :return Falseelse:stack.pop()if len(stack) == 0:return Trueelse:return False
相关文章:
leetcode栈与队列(一)-有效的括号
题目 . - 力扣(LeetCode) 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的…...

鸿蒙NEXT开发-知乎评论小案例(基于最新api12稳定版)
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...

重学SpringBoot3-集成Redis(十一)之地理位置数据存储
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(十一)之地理位置数据存储 1. GEO 命令简介2. 项目环境配置2.1. 依赖引入2.2. Redis 配置 3. GEO 数据存储和查询实现3…...

Docker-compose 单节点管理、consul 注册中心、registrator、template
consul是一个基于分布式的服务发现和配置管理工具。它具有快速构建分布式架构,提供服务发现和服务注册功能。consul职能:1、自动发现、注册;2、自动配置;3、自动更新 服务发现:自动检查网络中的服务(如数据…...

制药企业MES与TMS的数据库改造如何兼顾安全与效率双提升
*本图由AI生成 在全球制造业加速数字化转型的浪潮中,一家来自中国的、年营业额超过200亿元的制药企业以其前瞻性的视角和果断的行动,成为该行业里进行国产化改造的先锋。通过实施数据库改造试点项目,该企业实现了其关键业务系统MES࿰…...
Spring Boot比Spring多哪些注解
Spring Boot 是 Spring 框架的扩展,它旨在简化 Spring 应用程序的初始搭建以及开发过程。与 Spring 相比,Spring Boot 提供了许多额外的注解来进一步简化配置和开发工作。以下是 Spring Boot 特有的一些核心注解,这些注解在 Spring 中不可用&…...
985研一学习日记 - 2024.10.17
一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部,明天练胸和三头 3、LeetCode刷了3题 旋转图像:…...

牛客SQL29详解 计算用户的平均次日留存率
牛客SQL29详解 计算用户的平均次日留存率 牛客SQL29详解 计算用户的平均次日留存率 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 牛客SQL29详解 计算用户的平均次日留存率 题目&#x…...

Redis --- 第四讲 --- 常用数据结构 --- 其他类型stream、bitmap……。补充内容scan命令。
通过前面的学习,我们已经学习了Redis最关键的五个数据结构:String、List、Hash、Set、ZSet。这五个数据结构应用广泛,频繁使用。 redis中包含的所有类型,下面将要介绍不常用的类型。 一、streams类型介绍 事件、epoll/IO多路复…...

Java多线程--实现跑马小游戏
线程的实现方式 继承Thread类:void run()方法没有返回值,无法抛异常实现Runnable接口:void run()方法没有返回值,无法抛异常实现Callable接口:V call() throws Exception 返回结果,能够抛异常 实现Callab…...

扫雷(C 语言)
目录 一、游戏设计分析二、各个步骤的代码实现1. 游戏菜单界面的实现2. 游戏初始化3. 开始扫雷 三、完整代码四、总结 一、游戏设计分析 本次设计的扫雷游戏是展示一个 9 * 9 的棋盘,然后输入坐标进行判断,若是雷,则游戏结束,否则…...

有源滤波器(一)
滤波器设计工具 | 滤波器设计向导 | Analog Devices 一种带通滤波器: 有源滤波器完美规避了这个带不带负载滤波参数变化的问题,但是有源滤波器只能处理小电流和小电压: 鼠标所指的电路图是一阶同相滤波器,右上角的是他的幅频特性…...
Flume面试整理-常见的Channel类型
Apache Flume提供了多种Channel(通道)类型,作为Source(源)和Sink(汇)之间的缓冲区,确保数据的可靠传输。不同类型的Channel提供了不同的性能和可靠性,适用于不同的应用场景。以下是Flume中常见的Channel类型及其特点: 1. Memory Channel ● 描述:Memory Channel将数…...

【前端】如何制作一个自己的网页(6)
接上文 网络中的图片 我们也可以在百度等网站搜索自己喜欢的图片。 此时对图片点击右键,选择【复制图片地址】,即可获得该图片的网络地址。 其实在HTML中,除了图片以外,我们还可以利用地址找到另一个网页。 如右图所示&#…...
Linux系统性能调优技巧
Linux系统性能调优是一个复杂而持续的过程,需要综合考虑硬件、软件、内核参数、进程管理等多个方面。以下是一些具体的调优技巧: 一、硬件优化 增加物理内存:内存不足时,系统会频繁进行交换(swapping)活动…...

数学建模算法与应用 第5章 插值与拟合方法
目录 5.1 插值方法 Matlab代码示例:线性插值 Matlab代码示例:样条插值 5.2 曲线拟合的线性最小二乘法 Matlab代码示例:线性拟合 5.3 最小二乘优化与多项式拟合 Matlab代码示例:多项式拟合 5.4 曲线拟合与函数逼近 Matlab代…...

3D Slicer 教程二 ---- 数据集
上一章下载3d slicer的软件,这章从加载数据集来弄清楚3dslicer怎么使用. 一. 加载数据集 如果没有数据集,也可用用样本数据. (1) "File" --> "add Data" 可以添加图片文件夹,(试了MP4不行,内镜的视频估计不支持),添加单个图片的话,会出现一些选项, …...
【建议收藏】30个Java异常的知识点,你能撑到第几个?
文章目录 问题1:Error 和 Exception 区别是什么?问题2:运行时异常和一般异常(受检异常)区别是什么?问题3:JVM 是如何处理异常的?问题4:throw 和 throws 的区别是什么?问题5ÿ…...

【Linux系统编程】环境基础开发工具使用
目录 1、Linux软件包管理器yum 1.1 什么是软件包 1.2 安装软件 1.3 查看软件包 1.4 卸载软件 2、Linux编辑器-vim 2.1 vim的概念 2.2 vim的基本操作 2.3 vim的配置 3、Linux编译器-gcc/g 3.1 gcc编译的过程编辑编辑编辑 3.2 详解链接 动态链接 静态链接 4…...
滚雪球学Redis[6.2讲]:Redis脚本与Lua:深入掌握Redis中的高效编程技巧
全文目录: 📝前言🚦正文🌟6.2.1 Lua脚本的优势🖋️6.2.2 EVAL命令与Lua脚本编写🐵编写Lua脚本的基本步骤🐶示例:简单的GET和SET操作🐱示例:Lua实现自增和过期…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...

【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...