LeetCode 热题100-69 有效的括号

有效的括号

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

有效字符串需满足:

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

示例 1:

复制代码
输入:s = "()"
输出:true

示例 2:

复制代码
输入:s = "()[]{}"
输出:true

示例 3:

复制代码
输入:s = "(]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

这道比较简单,栈的思想,开口朝右的压栈,匹配到开口朝左的字符就和栈顶匹配一下,成功就栈顶弹出,否则return False,最后看看栈里空不空(如果不空说明栈里还有其他没有匹配的开口朝右的字符)(更简化的可以用字典存一下对应关系,然后直接用键值对写 if 语句)

python 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        if len(s)%2!=0:return False
        a = []
        for i in s :
            if i == '(' or i == '{' or i == '[':a.append(i)
            else:
                if len(a) == 0:return False
                if i == ')' and a[-1] == '(':a.pop()
                elif i == '}' and a[-1] == '{':a.pop()
                elif i == ']' and a[-1] == '[':a.pop()
                else:return False
        if len(a) != 0:return False
        return True
相关推荐
Thneonl9 分钟前
Celery 生产踩坑:1000 任务积压与 acks_late 双重执行
后端·python
清桔9 分钟前
模型的调用
python
小小张说故事10 分钟前
Python 多线程为什么跑不快?asyncio 入门指南:异步并发从零上手
后端·python
10年前端老司机11 分钟前
干货分享|企业智能知识库 Rerank 重排序落地实践与踩坑总结
python·aigc·agent
用户9799848071811 分钟前
200 行代码写一个能跑的 AI Agent:不依赖任何框架,只靠 tool-calling 原理
算法
threerocks12 分钟前
【Muse实战】X 流量作战室搭建保姆级教程 - 拥有你自己的运营团队
算法
天天被压力18 分钟前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python
天天被压力18 分钟前
【Python 量化取数指南 #14】Python 清洗行情数据:复权停牌对齐,回测不翻车
java·人工智能·python
Python私教19 分钟前
Python环境配置:conda+PyCharm+换源,附6个坑
人工智能·python·pycharm
databook21 分钟前
检测数据异常值的五种统计技术
python·数据挖掘·数据分析