当前位置:网站首页 > 技术博客 > 正文

数据结构中括号匹配的算法



             💓 博客主页:倔强的石头的CSDN主页 

             📝Gitee主页:倔强的石头的gitee主页

   ⏩ 文章专栏:《数据结构与算法 经典例题》C语言

                                  期待您的关注

1b7335aca73b41609b7f05d1d366f476.gif​​

目录

一、问题描述

二、解题思路

🍃激活成功教程之道

 🍃画图举例说明:

三、C语言实现代码


原题来自

20. 有效的括号 - 力扣(LeetCode)

 

🍃激活成功教程之道

括号匹配问题是一个比较有实际意义的问题,

问题要求将三种类型括号匹配,其中包括顺序匹配和数量匹配

使用栈的后进先出结构可以很好的解决这个问题:
遍历字符串
遇到左括号则压栈等待右括号匹配;
遇到右括号先进行判断,首先判断栈是否为空,如果为空则不可能完成匹配,直接判定无效


上述判定不成立再进行下列判断
如果此时栈顶的数据是与右括号匹配的左括号,则出栈,否则直接判定无效(顺序不匹配)
当字符串遍历完成时,如果栈为空,则说明括号全部匹配上了;否则说明数量不匹配

 关于栈的问题可以阅读前置文章

 【数据结构/C语言】使用数组实现栈:原理、步骤与应用-CSDN博客

 🍃画图举例说明:

第一种情况:数量顺序完全匹配时

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

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

C语言需要自己实现栈的数据结构,轮子之前已经造好了,这里就直接CV拿过来了

 

版权声明


相关文章:

  • linux中的ldd命令简介2025-01-04 22:01:06
  • 什么是数据库?数据库具有哪些特点2025-01-04 22:01:06
  • 万成文库下载2025-01-04 22:01:06
  • 五笔输入法86版和98版的区别2025-01-04 22:01:06
  • 线程与多线程2025-01-04 22:01:06
  • 单例模式的好处和坏处2025-01-04 22:01:06
  • rt纪录片2025-01-04 22:01:06
  • 电脑如何阅读epub2025-01-04 22:01:06
  • mysql版本选择2025-01-04 22:01:06
  • 用python解析xml的几种方法2025-01-04 22:01:06