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

python-leetcode 68.有效的括号

题目:

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

有效字符串需满足:左括号必须用相同类型的右括号闭合;左括号必须以正确的顺序闭合,每个右括号都有一个对应相同类型的左括号


根据栈这种数据结构。栈的特点是后进后出,即最后放入的元素会被最先取出,这与括号的闭合顺序是吻合的。

具体步骤如下:

1:初始化一个空栈

2:遍历字符串中的每一个字符:

如果遇到左括号,将其压入栈中。

如果遇到右括号,检查栈顶的元素是否是对应的左括号。如果是,弹出栈顶元素,表示括号匹配成功。如果不是,或者栈为空,即没有对应的左括号,则字符串无效

3:遍历结束后,检查栈是否为空:如果栈为空,说明所有括号都正确闭合,字符串有效。如果栈不为空,说明有未闭合的左括号,字符串无效。

class Solution(object):def isValid(self, s):""":type s: str:rtype: bool"""if len(s)%2 !=0:return Falsestack=[]mapping={")":"(","}":"{","]":"["}for char in s:if char in mapping.values():stack.append(char)else:if not stack or stack.pop()!=mapping[char]:return Falsereturn not stack

时间复杂度:O(n) n是字符串的长度,每个字符的入栈和出栈操作都是O(1)

KO空间复杂度:O(n)

相关文章:

  • 在Java项目中集成Deepseek大语言模型实践指南
  • AliSQL:阿里巴巴开源数据库的技术革新与应用实践
  • MySQL高可用之ProxySQL + MGR 实现读写分离实战
  • jmeter转义unicode变成中文
  • JMeter 教程:JSON 断言的简单介绍
  • 当PLC遇上电焊机器人:EtherCAT转CANopen上演工业级“语言翻译官”
  • Spring AI(7)——RAG
  • tigase源码学习笔记-事件总线EventBus
  • Pichome 开源网盘程序index.php 文件读取漏洞(CVE-2025-1743)
  • 【25软考网工】第七章 (2)UOS Linux文件和目录管理、用户和组管理
  • 破解 PCB 制造四大痛点:MOM 系统构建智能工厂新范式
  • SSRF(服务器端请求伪造)基本原理靶场实现
  • Java 02入门,封装继承多态
  • 哈希查找方法
  • Oracle RAC 中的 RBAL 进程
  • Android SharedPreferences:从零到一的全面解析与实战指南
  • Vue3 父子组件传值, 跨组件传值,传函数
  • 编译原理的部分概念
  • 桥梁凝冰在线监测装置:科技守护道路安全的新防线
  • Oracle资源管理器
  • 演员辛柏青发讣告:妻子朱媛媛患癌去世
  • 习近平:坚定信心推动高质量发展高效能治理,奋力谱写中原大地推进中国式现代化新篇章
  • 复旦大学艺术馆开馆:以当代视角再看文科文脉
  • 端午小长假前夜火车票今日开抢,多个技巧提高购票成功率
  • 龚正会见哥伦比亚总统佩特罗
  • 恒生银行回应裁员传闻:受影响的员工数目占银行核心业务员工总数约1%