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语言例子)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

你的气味,比名片更先抵达(你的香气)

我的建议是:选定一款,长久地使用下去。当你长期使用同一款独特的气味,这味道就会成为你个人标识的一部分。 第三,也是最重要的一点:你的香味,应该源自你的故事、你的性格、你的审美,而不是任何一篇攻略的推荐。那个能…

你的气味,比名片更先抵达(你的香气)

身体亮红灯?『景甜』捂肚出街疑似身体不适,把女『明星』️的心酸展露无遗(身体亮红灯征兆有哪些)

不过,也有声音指出,『景甜』前一天刚刚出席完微博之夜的活动,状态看起来非常好,红毯上的表现也相当自然,完全看不出有任何不适。这种反差让不少人感到困惑,纷纷开始猜测是否她的身体出现了问题。也有更为理智的网友站…

身体亮红灯?『景甜』捂肚出街疑似身体不适,把女『明星』️的心酸展露无遗(身体亮红灯征兆有哪些)

陈汉典Lulu台北大婚!中西礼服装绝美,前辈送礼尽显多年好人缘(陈汉典台湾综艺节目)

还有老粉回忆起当年陈汉典的模样:他在《康熙来了》里扮各种角色,被小S调侃也不生气,踏实又努力,今天他终于圆满了,实在是太值得了。除了在综艺圈站稳脚跟,他还收获了与Lulu长达12年的爱情。他曾是舞台上的绿叶,…

陈汉典Lulu台北大婚!中西礼服装绝美,前辈送礼尽显多年好人缘(陈汉典台湾综艺节目)

『蔡依林』演唱会「踩巨蟒」传大陆审批不会过!网急喊:拜托不要阉割(『蔡依林』演唱会歌单)

特别是其中一个环节,引发了观众和网友的广泛讨论:『蔡依林』站在一个巨大的机械蟒蛇道具上进行表演。 随着演唱会的精彩内容在大陆网络上的迅速传播,部分网友开始讨论这个巨蟒环节是否会在即将到来的大陆巡演中得以保留。…

『蔡依林』演唱会「踩巨蟒」传大陆审批不会过!网急喊:拜托不要阉割(『蔡依林』演唱会歌单)

农机方向盘转向助力球如何选择?2026农机配件市场大趋势全解(农机方向盘怎么拆)

选购农机方向盘转向助力球是提升作业效率的关键,本文详解助力球的工作原理、主要参数、预算考量及2026年市场趋势,教你选对配件。

农机方向盘转向助力球如何选择?2026农机配件市场大趋势全解(农机方向盘怎么拆)