Go语言实战案例-括号匹配算法(go语言例子)

Go语言实战案例-括号匹配算法(go语言例子)

在编译器、表达式求值、代码格式化等场景中,我们经常需要判断括号是否成对匹配且顺序正确。这是一个经典的栈(Stack)应用问题

一、问题描述

给定一个字符串,判断其中的括号是否匹配。括号可能包括:

  • • 圆括号
  • • [] 方括号
  • • {} 花括号

要求:

  • • 每个左括号必须有对应的右括号
  • • 括号必须按正确的嵌套顺序闭合

示例

  • 输入
  • 输出
  • ""true
  • "([]{})"true
  • "(]"false
  • "([)]"false
  • "{[]}"true
二、算法思路
  1. 1. 使用栈保存未匹配的左括号
  2. 2. 遍历字符串:
    • • 遇到左括号 (、[、{ → 压入栈
    • • 遇到右括号 )、]、} → 弹出栈顶元素,判断是否是对应的左括号
    • • 若不匹配或栈为空 → 返回 false
  3. 3. 遍历结束后,如果栈不为空 → 返回 false
  4. 4. 否则 → 返回 true
三、Go语言实现

packagemainimport("fmt")funcIsValidBrackets(sstring)bool{ stack := []rune{} pairs :=map[rune]rune{')':'(',']':'[','}':'{', }for_, ch :=ranges {switchch {case'(','[','{': stack =append(stack, ch)// pushcase')',']','}':iflen(stack) ==0|| stack[len(stack)-1] != pairs[ch] {returnfalse} stack = stack[:len(stack)-1]// pop} }returnlen(stack) ==0}funcmain { tests := []string{"","([]{})","(]","([)]","{[]}"}for_, t :=rangetests { fmt.Printf("%s -> %v\n", t, IsValidBrackets(t)) }}输出-> true([]{}) -> true(] -> false([)] -> false{[]} -> true

四、复杂度分析

  • 时间复杂度:O(n),只需一次遍历
  • 空间复杂度:O(n),栈最多存储 n 个字符
五、进阶扩展

1. 增加其他符号可以扩展 pairs 表,支持 或自定义符号。

2. 忽略非括号字符在表达式中可能包含数字、运算符,可以在 switch 中只处理括号。

3. 处理大规模数据当输入很大时,可以考虑流式处理(分块判断)。

六、总结

通过本篇案例,你学习了:

  • • 使用栈解决括号匹配问题
  • • Go 语言中 map、slice 的基本操作
  • • 如何分析算法的时间和空间复杂度

栈的应用非常广泛,除了括号匹配,还可用于表达式求值、撤销操作、DFS搜索等场景。

特别声明:[Go语言实战案例-括号匹配算法(go语言例子)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

中国险资万亿元“隐秘仓位”曝光 OCI账户成新宠(中国保险总量)

习惯了保险公司以“传统险”、“分红险”等名字出现在上市公司股东名单里的投资者们,可能会忽略它们报表上的一个“小科目”。这个不被外界关注的会计科目,恰恰是保险资金年内增仓A股最重要的“平台”

中国险资万亿元“隐秘仓位”曝光 OCI账户成新宠(中国保险总量)

让中国企业飞向世界,金山办公+华为联手造了“AI协同直升机”(让中国企业加快走出去步伐)

据了解,该方案整合WPS365在协同办公领域的『数字化』、智能化优势与华为公司全栈技术能力,通过AI、软件与云计算、硬件的深度协同,为企业办公数智化转型提供最优解。WPS 365一体化AI办公解决方案,构建了全…

让中国企业飞向世界,金山办公+华为联手造了“AI协同直升机”(让中国企业加快走出去步伐)

【智造世界·创造美好】安徽省35家企业入选 2025年国家5G工厂(ll智造)

(来源:安徽新闻网) 转自:安徽新闻网2023年以来,我省共80家企业入选国家5G工厂名录,数量居全国第5位。通过“5G+工业『互联网』”集成12类业务系统,实时采集数万设备数据,设备联网率达99.9%,产能利用…

【智造世界·创造美好】安徽省35家企业入选 2025年国家5G工厂(ll智造)

鲸驰集团在城市规划方面的创新》(鲸驰餐饮有限公司)

- 解决“最后一公里”配送问题:鲸驰集团与多家物流企业合作,开展无人机配送试点项目,在城市物流配送环节引入无人机技术。同时,智能物流系统的布局也需要与城市规划相结合,如合理设置物流配送中心、无人机起降点等,…

《<strong>鲸驰集团在城市规划方面的创新</strong>》(鲸驰餐饮有限公司)

『关晓彤』穿黑裙,美到我失语!(『关晓彤』黑色超短连衣裙👗跳舞)

搭配的黑色高跟鞋👠,跟她的裙子👗相得益彰,让她的腿看起来更长了,简直是 “腿精本精”。 而且,『关晓彤』的『妆容』和发型也很加分。『妆容』精致又不夸张,把她的五官衬得更立体了,尤其是那双大眼睛,明亮又有神。整体造型一搭配,又…

『关晓彤』穿黑裙,美到我失语!(『关晓彤』黑色超短连衣裙👗跳舞)