news 2026/5/1 5:51: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/4/28 6:36:00

还在为物流延迟抓狂?Open-AutoGLM同步优化策略大曝光

第一章&#xff1a;还在为物流延迟抓狂&#xff1f;Open-AutoGLM同步优化策略大曝光在现代供应链系统中&#xff0c;物流延迟已成为制约交付效率的核心瓶颈。传统调度算法难以应对动态环境变化&#xff0c;而基于大语言模型的决策系统又往往存在响应滞后问题。Open-AutoGLM 通过…

作者头像 李华
网站建设 2026/4/22 22:10:12

软件测试环境建设与运维管控体系

1 测试环境架构设计原则 1.1 环境分层策略 研发自测环境&#xff1a;部署最新构建版本&#xff0c;支持开发者快速验证功能 集成测试环境&#xff1a;模拟生产环境拓扑&#xff0c;保障模块间协调性 预发布环境&#xff1a;与生产环境保持硬件、网络、数据三位一体的一致性…

作者头像 李华
网站建设 2026/4/30 19:23:02

轮回修仙传 v1.0.11.27.1 免安装中文版下载及使用方法

轮回修仙传 v1.0.11.27.1 免安装中文版下载及使用方法 游戏下载地址 https://pan.quark.cn/s/5c8a8f81d9d0 游戏介绍 本作是一款轻度化快节奏的修仙游戏&#xff0c;没有自由开放的修仙大世界&#xff0c;更多是在一次又一次轮回的选择中&#xff0c;寻觅更多的仙缘奇遇&…

作者头像 李华
网站建设 2026/4/27 23:35:19

AI自动化新突破:Open-AutoGLM赋能外卖自动下单(全链路解析)

第一章&#xff1a;AI自动化新突破&#xff1a;Open-AutoGLM赋能外卖自动下单随着大语言模型与自动化技术的深度融合&#xff0c;AI在真实生活场景中的应用正迎来关键突破。Open-AutoGLM 作为新一代开源自动化智能体框架&#xff0c;首次实现了基于自然语言指令的端到端外卖下单…

作者头像 李华
网站建设 2026/4/27 16:09:05

【Open-AutoGLM物流同步实战指南】:掌握高效信息同步的5大核心技术

第一章&#xff1a;Open-AutoGLM物流信息同步的核心价值在现代物流系统中&#xff0c;信息同步的实时性与准确性直接影响供应链效率。Open-AutoGLM 作为一种基于生成式语言模型的自动化数据协同框架&#xff0c;能够实现跨平台、多节点的物流信息智能同步&#xff0c;显著提升数…

作者头像 李华
网站建设 2026/4/25 9:17:46

【Open-AutoGLM配置终极指南】:从零搞定requirements.txt依赖管理

第一章&#xff1a;Open-AutoGLM依赖管理概述Open-AutoGLM 是一个面向自动化代码生成与语言模型集成的开源框架&#xff0c;其核心能力依赖于精确的依赖管理机制。有效的依赖管理不仅确保开发环境的一致性&#xff0c;还保障了模型训练、推理和服务部署各阶段的可复现性。依赖声…

作者头像 李华