news 2026/10/15 4:16:48

有效的括号(栈)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有效的括号(栈)

目录

题目要求:

解法思路

复杂度

code

栈的理解

idea

🎬 括号匹配的动画想象


题目要求:

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

有效字符串需满足:

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

解法思路

使用栈数据结构:

  1. 遍历字符串的每个字符。

  2. 如果是左括号((、[、{),压入栈。

  3. 如果是右括号,检查栈顶的左括号是否与之匹配:

    • 若栈为空 → 无效(右括号多余)

    • 栈顶括号不匹配 → 无效

    • 匹配 → 弹出栈顶元素,继续

  4. 遍历完成后,如果栈为空 → 有效;否则无效(左括号多余)

复杂度

  • 时间复杂度:O(n),每个字符入栈或出栈一次。

  • 空间复杂度:O(n),最坏情况下全部左括号入栈。

code

/** * @param {string} s * @return {boolean} */ var isValid = function (s) { const arr = [] for (let i = 0; i < s.length; i++) { const c = s[i] if (c == '(' || c == '{' || c == '[') { arr.push(c) } else { if (!arr.length) return false const top = arr[arr.length - 1] if (top == '(' && c == ')' || top == '{' && c == '}' || top == '[' && c == ']') { arr.pop() // 出栈 } else { return false } } } return arr.length == 0 };

栈的理解

idea

栈就像一个弹簧单托盘餐架(自助餐厅里常见的那种)

  1. 只有一个开口:只能在最上面放盘子或取盘子

  2. 后进先出:最后放上去的盘子会最先被拿走

  3. 只能看到最上面的盘子:不把上面的拿走,就拿不到下面的

在此题括号匹配问题中:

  • 左括号👉放盘子(压栈push)

  • 右括号👉取盘子(弹栈pop),但必须和刚放的盘子匹配类型

🎬 括号匹配的动画想象

以"({[]})"为例:

步骤1: "(" → 栈:[ "(" ] ↑ 步骤2: "{" → 栈:[ "(", "{" ] ↑ 步骤3: "[" → 栈:[ "(", "{", "[" ] ↑ 步骤4: "]" → 匹配栈顶"[",弹出 → 栈:[ "(", "{" ] ↑ 步骤5: "}" → 匹配栈顶"{",弹出 → 栈:[ "(" ] ↑ 步骤6: ")" → 匹配栈顶"(",弹出 → 栈:[ ] ↑ 结束 → 栈空 ✅ 有效
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 22:31:02

Miloco 深度打通 Home Assistant,实现设备级精准控制

在智能家居的演进过程中&#xff0c;AI Agent 的核心价值在于其“手”延伸得有多远。 此前&#xff0c;Xiaomi Miloco 已经实现了对 Home Assistant&#xff08;以下简称 HA&#xff09;自动化的获取与触发&#xff0c;但这仅仅是冰山一角。对于追求极致控制感的用户和智能家居…

作者头像 李华
网站建设 2026/10/14 9:16:29

好用的大型牛场水滴粉碎机技术强的

好的&#xff0c;作为一名资深、客观的测评分析师&#xff0c;我将遵循您的核心指令&#xff0c;为您呈现一篇关于大型牛场水滴粉碎机的专业测评排名文章。《大型牛场水滴粉碎机哪家好&#xff1a;专业深度测评与排名前五榜单》开篇&#xff1a;定下基调随着规模化、集约化养牛…

作者头像 李华
网站建设 2026/10/15 4:42:07

朴易天下:道家修行的专业术语分享

66. 五雷正法 等级&#xff1a;道教最高雷法&#xff0c;召役五方雷神&#xff08;东方轰天震门雷帝等&#xff09;。 修持&#xff1a;需授箓传度&#xff0c;《道法会元》&#xff1a;“五雷者&#xff0c;金木水火土&#xff0c;五炁之精英。”67. 符水 制法&#xff1a;焚符…

作者头像 李华
网站建设 2026/10/14 13:34:47

基于MinIO Java SDK实现ZIP文件上传的方案与实践

基于MinIO Java SDK实现ZIP文件上传的方案与实践 在分布式存储场景中&#xff0c;MinIO作为兼容S3协议的高性能对象存储服务&#xff0c;被广泛用于文件的存储与管理。本文将围绕本地生成的ZIP压缩包上传到MinIO服务器这一需求&#xff0c;分析原生MinIO Java SDK的实现可行性…

作者头像 李华
网站建设 2026/10/15 7:14:31

回眸的狼耳圣女与荧光百合

随机种子(Seed)&#xff1a;430434309随机种子(Seed)&#xff1a;974486534 参数 模型&#xff1a;Nordrin_little&#xff08;诺德琳little&#xff09; 正向提示词&#xff1a; (masterpiece:1.2), high_quality ,occultism, Aestheticism Painting , (flat color), best qua…

作者头像 李华
网站建设 2026/10/13 11:07:56

空操作节点-–-behaviac

原文 空操作节点 空操作&#xff08;Noop&#xff09;节点只是作为占位&#xff0c;仅执行一次就返回成功&#xff0c;如下图所示&#xff1a; 图1 空节点 具体的执行逻辑可以查看behaviortree/nodes/actions/noop.cpp

作者头像 李华