news 2026/5/12 15:54:24

括号匹配问题

作者头像

张小明

前端开发工程师

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/5/10 16:01:30

Open-AutoGLM快递路径预测黑科技(基于时空图神经网络的大模型应用)

第一章&#xff1a;Open-AutoGLM 快递轨迹追踪Open-AutoGLM 是一个基于大语言模型与自动化推理框架的智能物流解决方案&#xff0c;专注于快递轨迹的实时解析与状态预测。该系统能够从非结构化的物流日志中提取关键节点信息&#xff0c;并结合时间序列分析实现高精度的路径还原…

作者头像 李华
网站建设 2026/5/12 6:30:00

Open-AutoGLM requirements.txt 配置秘籍(仅限内部流传的3种高效写法)

第一章&#xff1a;Open-AutoGLM requirements.txt 配置核心概述在构建 Open-AutoGLM 项目时&#xff0c;requirements.txt 文件是管理 Python 依赖的核心组件。该文件定义了项目运行所必需的第三方库及其版本约束&#xff0c;确保开发、测试与生产环境之间的一致性。依赖声明规…

作者头像 李华
网站建设 2026/5/11 2:56:40

电商比价不再难,手把手教你用Open-AutoGLM实现全自动利润挖掘

第一章&#xff1a;电商比价不再难&#xff0c;Open-AutoGLM开启智能利润挖掘新时代在电商平台竞争日益激烈的今天&#xff0c;精准掌握商品价格动态是获取市场优势的关键。传统人工比价方式效率低下、误差率高&#xff0c;已无法满足现代商家对实时性和准确性的需求。Open-Aut…

作者头像 李华
网站建设 2026/5/12 1:32:22

优惠卷业务超卖问题解决方案

问题背景在在线教育业务中&#xff0c;因为功能的扩展刺激消费通常会有一个优惠卷的功能&#xff0c;当时这些优惠卷通常是限量的需要学员自助领取&#xff0c;在一些特定场景下会出现学员领取卷的总数量大于运营设置的卷的总数量&#xff0c;这就是超卖问题的现象&#xff0c;…

作者头像 李华
网站建设 2026/5/11 22:44:49

探索式测试技巧与实战

重新认识探索式测试的本质 在敏捷开发与持续交付日益主流的今天&#xff0c;传统的脚本化测试暴露出响应速度慢、覆盖率受限等局限性。探索式测试&#xff08;Exploratory Testing&#xff09;作为一种强调测试者自主性、认知性与即时优化的测试方法&#xff0c;正成为保障软件…

作者头像 李华
网站建设 2026/5/12 10:48:02

【企业级物流同步方案】:基于Open-AutoGLM的4种高可用部署模式

第一章&#xff1a;企业级物流同步的挑战与Open-AutoGLM的演进在现代供应链体系中&#xff0c;企业级物流系统面临多源异构数据实时同步、跨区域调度延迟高、系统扩展性不足等核心挑战。传统ETL方案难以应对每日TB级的运输状态更新与预测需求&#xff0c;尤其在跨境物流场景下&…

作者头像 李华