平衡的括号(Parentheses Balance, Uva673)- 栈的应用

该博客讨论了如何实现括号匹配算法,通过使用栈数据结构从字符串尾部开始进行匹配。文章提供了详细的代码实现,并给出了具体例子来解释算法工作原理。在测试案例中,算法能够正确判断括号序列是否合法,对于非法输入序列会返回错误提示。

题目

  • 题目参考网址:https://vjudge.net/problem/UVA-673
  • 大意:
    实现匹配“[”,“]”和“(”,“)”,判断输入是否合法。

知识点

  • 栈的应用

思路

设置一个栈,输入的括号序列从尾开始匹配,

  • 若和栈顶括号匹配,则pop()出当前符号字符(第一个括号字符直接放入)。
  • 若不匹配,则将当前位置的括号也压入栈。

直到括号序列遍历完毕,若栈中仍然有多的括号序列,则说明当前的括号序列不是合法输入序列。

代码

# include <iostream>
# include <cstdio>
# include <vector>
# include <stack>
using namespace std;

vector <string> ans;

bool is_paired(char a, char b) {
   
   
    if (a == '[')
        return b == ']';
    <
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值