每日一练:4.有效的括号

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

有效字符串需满足:

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

示例 1:

输入: s = "()"

输出: true

示例 2:

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

输出: true

示例 3:

输入: s = "(]"

输出: false

示例 4:

输入: s = "([])"

输出: true

提示:

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

解决方法

arduino 复制代码
class Solution:
    def isValid(self, s: str) -> bool:
        if len(s) % 2 == 1:
            return False
        pairs = {
            ")": "(",
            "]": "[",
            "}": "{",
        }
        stack = list()
        for ch in s:
            if ch in pairs:
                if not stack or stack[-1] != pairs[ch]:
                    return False
                stack.pop()
            else:
                stack.append(ch)
        return not stack
相关推荐
前端若水10 小时前
【无标题】
java·人工智能·python·机器学习
Pu_Nine_910 小时前
IntersectionObserver 详解:封装 Vue 指令实现图片懒加载
前端·javascript·vue.js·性能优化
清灵xmf10 小时前
Web 和 Native 是怎么“对话“的?JSBridge 解答
前端·webview·native·jsbridge·hybrid
databook10 小时前
填充与积累:积分与面积的可视化
python·数学·动效
TechWayfarer11 小时前
AI大模型时代:IP数据云如何适配智能体场景需求
开发语言·人工智能·python·网络协议·tcp/ip·langchain
Ysn071911 小时前
中文乱码:在 Docker 容器中设置中文语言环境
运维·python·docker·容器
jiayong2311 小时前
前端面试题库 - ES6+新特性篇
前端·面试·es6
qingfeng1541511 小时前
企业微信消息监听实战:如何实时接收客户消息回调?
人工智能·python·自动化·企业微信
前端那点事11 小时前
Vue nextTick 超全解析|作用、使用场景、底层原理、Vue2/Vue3区别
前端·vue.js