news 2026/4/4 10:42:51

括号匹配问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
括号匹配问题

括号匹配是编程中经典的栈应用场景,核心要求是:给定一个仅包含括号(如()[]{}<>等)的字符串,判断括号的嵌套 / 排列是否满足「合法规则」,本质是验证左括号与右括号的对应关系

本文为该问题增加限制条件:即当有多种括号嵌套时,嵌套的顺序应为{ → [ → ( → <。举例,[ 只能被嵌套到 { 中,但 ( 可以被嵌套到 { 或 [ 中,以此类推。

解题的核心原则是:
1.遍历整个字符串
2.遇到左括号直接入栈(该题在入栈时添加判断条件确保嵌套的顺序为{ → [ → ( → <)
3.遇到右括号时检查此时的栈顶括号(stackk.top())是否与右括号匹配。若匹配,则进行出栈操作;若不匹配,则直接返回false
4.遍历结束后,检查栈是否为空。若为空,则说明括号均能匹配成功;若不为空,则括号匹配失败

给出解题代码如下(C++)如下:

#include <iostream> #include <vector> #include <algorithm> #include <stack> #include <string> using namespace std; bool isMatched(string s) { stack<char> stackk; for (int i = 0; i < s.size(); i++) { //遇到左括号直接入栈 if (s[i] == '{') { if (!stackk.empty()) { return false; } stackk.push(s[i]); } if (s[i] == '[') { if (!stackk.empty() && stackk.top()!='{') { return false; } stackk.push(s[i]); } if (s[i] == '(') { if (!stackk.empty() && (stackk.top() != '{' && stackk.top() != '[')) { return false; } stackk.push(s[i]); } if (s[i] == '<') { if (!stackk.empty() && (stackk.top() == '<')) { return false; } stackk.push(s[i]); } //出栈 if (s[i] == '}') { if (stackk.empty() || stackk.top() != '{') { return false; } else { stackk.pop(); } } if (s[i] == ']') { if (stackk.empty() || stackk.top() != '[') { return false; } else { stackk.pop(); } } if (s[i] == ')') { if (stackk.empty() || stackk.top() != '(') { return false; } else { stackk.pop(); } } if (s[i] == '>') { if (stackk.empty() || stackk.top() != '<') { return false; } else { stackk.pop(); } } } if (stackk.empty()) { return true; } else { return false; } } int main() { string s; cin >> s; if (isMatched(s)) { cout << "Matched" << endl; } else { cout << "Fail" << endl; } }

该算法的时间复杂度为O(n)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 10:11:12

10个高效降AI率工具,MBA学生必备神器

10个高效降AI率工具&#xff0c;MBA学生必备神器 AI降重工具&#xff1a;MBA论文的隐形助手 在当前学术写作中&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已成为许多MBA学生不得不面对的问题。随着高校对AI痕迹检测的重视程度不断提升&#xff0c;如何有效降低AIGC率、…

作者头像 李华
网站建设 2026/4/2 15:18:54

2030年中国AI人才缺口或超400万!麦肯锡报告解析与大模型学习指南!

前阵子刷社交平台时&#xff0c;一条行业分析帖子让我瞬间清醒 —— 全球知名咨询公司麦肯锡曾发布报告预警&#xff0c;到 2030 年&#xff0c;中国 AI 领域的人才缺口规模可能会突破 400 万&#xff01;这个数字乍一看或许只是个抽象概念&#xff0c;但结合当下行业现状拆解后…

作者头像 李华
网站建设 2026/4/2 3:59:28

为什么顶级OTA都在用Open-AutoGLM?,揭秘其背后的价格优势算法

第一章&#xff1a;为什么顶级OTA都在用Open-AutoGLM&#xff1f;在当今竞争激烈的在线旅游市场&#xff0c;实时性、智能化与个性化已成为服务的核心竞争力。越来越多顶级OTA&#xff08;Online Travel Agency&#xff09;选择部署Open-AutoGLM作为其智能决策引擎&#xff0c;…

作者头像 李华
网站建设 2026/4/2 19:40:06

【电商数据掘金利器】:Open-AutoGLM实现全网比价自动化(附源码架构)

第一章&#xff1a;电商数据掘金利器——Open-AutoGLM全网比价自动化综述在数字化零售时代&#xff0c;价格竞争成为电商平台核心策略之一。Open-AutoGLM作为一款基于大语言模型与自动化爬虫技术融合的开源工具&#xff0c;为全网比价提供了高效、智能的解决方案。它不仅能够实…

作者头像 李华
网站建设 2026/4/3 8:37:16

【物流智能化转型关键】:Open-AutoGLM在快递轨迹追踪中的7个落地场景

第一章&#xff1a;Open-AutoGLM在快递轨迹追踪中的核心价值Open-AutoGLM作为一种基于生成式语言模型的自动化推理引擎&#xff0c;在物流领域的实际应用中展现出显著优势&#xff0c;尤其是在快递轨迹追踪这一高频、多源、实时性要求高的场景中。其核心价值体现在对非结构化数…

作者头像 李华