💓 博客主页:倔强的石头的CSDN主页
📝Gitee主页:倔强的石头的gitee主页
⏩ 文章专栏:《数据结构与算法 经典例题》C语言
期待您的关注
目录
一、问题描述
二、解题思路
🍃激活成功教程之道
🍃画图举例说明:
三、C语言实现代码
原题来自
20. 有效的括号 - 力扣(LeetCode)
🍃激活成功教程之道
括号匹配问题是一个比较有实际意义的问题,
问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配
使用栈的后进先出结构可以很好的解决这个问题:
遍历字符串
遇到左括号则压栈等待右括号匹配;
遇到右括号先进行判断,首先判断栈是否为空,如果为空则不可能完成匹配,直接判定无效
上述判定不成立再进行下列判断
如果此时栈顶的数据是与右括号匹配的左括号,则出栈,否则直接判定无效(顺序不匹配)
当字符串遍历完成时,如果栈为空,则说明括号全部匹配上了;否则说明数量不匹配
关于栈的问题可以阅读前置文章
【数据结构/C语言】使用数组实现栈:原理、步骤与应用-CSDN博客
🍃画图举例说明:
第一种情况:数量顺序完全匹配时

第二种情况:数量匹配,顺序不匹配时

第三种情况:数量不匹配时

C语言需要自己实现栈的数据结构,轮子之前已经造好了,这里就直接CV拿过来了
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1012.html