【leetcode100】有效的括号

1、题目描述

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

有效字符串需满足:

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

示例 1:

        输入:s = "()"

        输出:true

示例 2:

        输入:s = "()[]{}"

        输出:true

示例 3:

        输入:s = "(]"

        输出:false

2、初始思路

2.1 思路

对于左括号“([{“直接将其加入stack中,在检测到右括号时判断其是否有对应的正确的左括号,如果有,则弹出左括号,如果没有,则说明字符串是无效的,可以直接返回False.

2.2 代码

class Solution:def isValid(self, s: str) -> bool:stack = []if not s:return Trueif len(s) % 2 != 0:return Falsefor i in s:if not stack or i == '(' or i == '[' or i == '{':stack.append(i)elif i == ')' and stack[-1] == '(':stack.pop()elif i == ']' and stack[-1] == '[':stack.pop()elif i == '}' and stack[-1] == '{':stack.pop()else:return Falseif not stack:return Trueelse:return False

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

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

相关文章

为什么使用Flask + uWSGI + Nginx 部署服务?

概述 在Python开发的web应用中,我们通常能够看到flask、uWSGI、Nginx出现在一起,他们之间的关系是什么?为什么总是被应用在一起?  三者共同使用为了实现一个目的:客户端向服务端发送数据请求,服…

接口等幂处理

介绍 ✅ 什么是等幂(Idempotency)? 等幂 无论这个操作被执行多少次,结果都是一样的,不会因为多次执行而产生副作用。 通俗一点说:“点一次和点一百次,效果是一样的。” ✅ 在接口中&#xff0…

P1090合并果子(优先队列)

洛谷题目 这里使用的是优先队列&#xff0c;非常简单 首先让我们一起来学习一下优先队列&#xff08;默认是从大到小来排列&#xff09; 首先要使用头文件 #include<queue> using namespace std; 然后声明有限队列 priority_queue<int> a; priority_queue&…

蓝桥杯备考---->并查集之 Lake Counting

这道题就统计有多少个连通块就行了 这时候我们又需要把二维转成一维了&#xff0c;也就是把每一个格子都给一个编号 当我们合并连通块的时候&#xff0c;其实是只需要四个方向的 因为我们是从上往下遍历的&#xff0c;我们遍历到某个位置的时候&#xff0c;它已经和上面部分…

React受控表单绑定

受控表单绑定 在 React 中&#xff0c;受控组件&#xff08;Controlled Component&#xff09;是指表单元素的值由 React 组件的 state 管理&#xff0c;React 通过 onChange 事件监听输入变化&#xff0c;并实时更新 state&#xff0c;从而控制表单输入值。 为什么要使用受控…

8、linux c 信号机制

一、信号概述 1. 信号概念 信号是一种在软件层次上对中断机制的模拟&#xff0c;是一种异步通信方式。信号的产生和处理都由操作系统内核完成&#xff0c;用于在进程之间传递信息或通知某些事件的发生。 2. 信号的产生 信号可以通过以下方式产生&#xff1a; 按键产生&…

CSP-J 2019 入门级 第一轮(初赛) 完善程序(2)

【题目】 CSP-J 2019 入门级 第一轮&#xff08;初赛&#xff09; 完善程序&#xff08;2&#xff09; &#xff08;计数排序&#xff09;计数排序是一个广泛使用的排序方法。下面的程序使用双关键字计数排序&#xff0c;将n对10000 以内的整数&#xff0c;从小到大排序。 例如…

Vue3 项目通过 docxtemplater 插件动态渲染 .docx 文档(带图片)预览,并导出

Vue3 项目通过 docxtemplater 插件动态渲染 .docx 文档&#xff08;带图片&#xff09;预览&#xff0c;并导出 预览安装插件示例代码项目目录结构截图实际效果截图 动态渲染 .docx 文档&#xff08;带图片&#xff09;&#xff0c;预览、导出安装插件docx 模板文件内容完整代码…

养老更安心!智绅科技“智慧”养老系统,智在何处?

在老龄化趋势不断加剧的当下&#xff0c;养老问题成为全社会关注的焦点。 人们对于养老服务的需求日益增长&#xff0c;不仅期望能够得到基本的生活照料&#xff0c;更渴望在安全、舒适、便捷的环境中安享晚年。 智绅科技的“智慧”养老系统应运而生&#xff0c;凭借其独特的…

MySQL 当中的锁

MySQL 当中的锁 文章目录 MySQL 当中的锁MySQL 中有哪些主要类型的锁&#xff1f;请简要说明MySQL 的全局锁有什么用&#xff1f;MySQL 的表级锁有哪些&#xff1f;作用是什么&#xff1f;元数据锁&#xff08;MetaData Lock&#xff0c;MDL&#xff09;意向锁&#xff08;Inte…

vue前端代码作业——待办事项

美化样式示意图&#xff1a; 后端IDEA代码示意图&#xff1a; 代码解释&#xff1a; 1. isAllChecked 计算属性的作用 isAllChecked 用于实现 “全选 / 全不选” 功能&#xff0c;它是一个 双向绑定 的计算属性&#xff08;因为 v-model 需要同时支持读取和设置值&#xff09…

Oracle数据库数据编程SQL<3.1 PL/SQL 匿名块 及 流程控制中的条件判断、循环、异常处理和随机函数应用>

PL/SQL部分 在SQL的基础上增加了一些过程化的控制语句。 过程化控制语句包括&#xff1a;类型定义、判断、循环、游标、异常处理&#xff08;例外处理&#xff09; 目录 PL/SQL匿名块 一、匿名块基本结构 1、匿名块由三个部分组成&#xff1a; 2、注意事项&#xff1a; …

DeepSeek详解:探索下一代语言模型

文章目录 前言一、什么是DeepSeek二、DeepSeek核心技术2.1 Transformer架构2.1.1 自注意力机制 (Self-Attention Mechanism)(a) 核心思想(b) 计算过程(c) 代码实现 2.1.2 多头注意力 (Multi-Head Attention)(a) 核心思想(b) 工作原理(c) 数学描述(d) 代码实现 2.1.3 位置编码 (…

Git Reset 命令详解与实用示例

文章目录 Git Reset 命令详解与实用示例git reset 主要选项git reset 示例1. 撤销最近一次提交&#xff08;但保留更改&#xff09;2. 撤销最近一次提交&#xff0c;并清除暂存区3. 彻底撤销提交&#xff0c;并丢弃所有更改4. 回退到特定的提交5. 取消暂存的文件 git reset 与 …

前端知识点---事件监听器里面的e.target跟this的区别,e.target在事件委托中的好处

文章目录 ✅ 相同点✅ 不同点✅ 总结区别e.target与事件委托之间的关系 在事件监听器中&#xff0c;e.target 和 this 有时是一样的&#xff0c;但它们并不完全相同。 ✅ 相同点 当事件直接绑定到元素时&#xff1a; e.target 和 this 通常指向相同的元素&#xff0c;即事件绑…

Elasticsearch 完全指南

1. Elasticsearch基础知识 1.1 什么是Elasticsearch Elasticsearch是一个基于Lucene的分布式、RESTful风格的搜索和数据分析引擎。它是一个开源的、高扩展的、分布式的全文搜索引擎,可以近乎实时地存储、检索数据。 Elasticsearch不仅仅是一个全文搜索引擎,它还可以用于以…

Python 3 与 MySQL 数据库连接:mysql-connector 模块详解

Python 3 与 MySQL 数据库连接&#xff1a;mysql-connector 模块详解 概述 在Python 3中&#xff0c;与MySQL数据库进行交互是一个常见的需求。mysql-connector是一个流行的Python模块&#xff0c;它提供了与MySQL数据库连接和交互的接口。本文将详细介绍mysql-connector模块…

SQL:CASE WHEN使用详解

文章目录 1. 数据转换与映射2. 动态条件筛选3. 多条件分组统计4. 数据排名与分级5. 处理空值与默认值6. 动态排序 CASE WHEN 语句在 SQL 中是一个非常强大且灵活的工具&#xff0c;除了常规的条件判断外&#xff0c;还有很多巧妙的用法&#xff0c;以下为你详细总结&#xff1a…

【字符设备驱动开发–IMX6ULL】(二)Linux 设备号

【字符设备驱动开发–IMX6ULL】&#xff08;二&#xff09;Linux 设备号 文章目录 【字符设备驱动开发–IMX6ULL】&#xff08;二&#xff09;Linux 设备号1 设备号的组成2.设备号的分配 1 设备号的组成 为了方便管理&#xff0c;Linux 中每个设备都有一个设备号&#xff0c;设…

【字符设备驱动开发–IMX6ULL】(一)简介

【字符设备驱动开发–IMX6ULL】&#xff08;一&#xff09;简介 一、Linux驱动与裸机开发区别 1.裸机驱动开发回顾 ​ 1、底层&#xff0c;跟寄存器打交道&#xff0c;有些MCU提供了库。 spi.c&#xff1a;主机驱动&#xff08;换成任何一个设备之后只需要调用此文件里面的…