Description
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。

Input
输入数据有多组,处理到文件结束。

Output
如果匹配就输出“yes”,不匹配输出“no”

Sample
Input
sin(20+10)
{[}]
Output
yes
no

#include<bits/stdc++.h>using namespace std;#define intsize 100000
#define addsize 100000typedef char elemtype;typedef struct
{elemtype *base;elemtype *top;int stacksize;
} Sqstack;int initstack(Sqstack &s)
{s.base = (elemtype *)malloc(intsize *sizeof(elemtype));if(!s.base)return -1;s.top = s.base;s.stacksize = intsize;return 0;
}int bian(elemtype n)
{int flag;if(n == '(')flag = 1;if(n == '[')flag = 2;if(n == '{')flag = 3;if(n == ')')flag = 4;if(n == ']')flag = 5;if(n == '}')flag = 6;return flag;
}int push(Sqstack &s, int x)
{if(s.top - s.base > s.stacksize){s.base = new elemtype[intsize + addsize];if(!s.base)return -1;s.top = s.base + addsize;s.stacksize += addsize;}*s.top++ = x;return 0;
}elemtype pop(Sqstack &s)
{elemtype x;return x = *--s.top;
}int main()
{Sqstack s;char a[55], ch;int n, flag;while(gets(a)){initstack(s);flag = 1;n = strlen(a);for(int i = 0; i < n; i++){ch = a[i];if(ch == '(' || ch == '[' || ch == '{')push(s, bian(ch));else if(ch == ')' || ch == ']' || ch == '}'){if(s.top == s.base){flag = 0;break;}else if(bian(ch) - pop(s) != 3) {flag = 0;break;}}}if(s.top != s.base)//判断是否全部匹配flag = 0;if(flag)printf("yes\n");elseprintf("no\n");}return 0;
}

数据结构实验之栈与队列四:括号匹配相关推荐

  1. sdut 2134 数据结构实验之栈与队列四:括号匹配

    数据结构实验之栈与队列四:括号匹配 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...

  2. c语言中缀表达式求值_数据结构考研笔记之栈与队列(四)栈与队列应用括号匹配、中缀表达式转前缀后缀问题...

    文字:独木 排版:独木 图片:独木 栈与队列 1.括号匹配问题 栈 例题1 例题2-----不匹配例题1 例题3-----不匹配例题2 2. 表达式求值问题 例题 1.中缀表达式转前缀表达式 2.中缀 ...

  3. SDUT-2449_数据结构实验之栈与队列十:走迷宫

    数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...

  4. SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式

    数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...

  5. sdut 2088 数据结构实验之栈与队列十一:refresh的停车场

    数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...

  6. sdut 1479 数据结构实验之栈与队列九:行编辑器

    数据结构实验之栈与队列九:行编辑器 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...

  7. sdut 3335 数据结构实验之栈与队列八:栈的基本操作

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descri ...

  8. sdut 3333 数据结构实验之栈与队列六:下一较大值(二)

    数据结构实验之栈与队列六:下一较大值(二) Time Limit: 150MS Memory Limit: 8000KB Submit Statistic Discuss Problem Descri ...

  9. sdut-3332 数据结构实验之栈与队列五:下一较大值(一)

    数据结构实验之栈与队列五:下一较大值(一) Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Desc ...

最新文章

  1. cv::cuda::split 使用
  2. Spring 2.5 基于注解驱动的 Spring MVC
  3. 区块链预言机(4)内在机制
  4. 【Opencv探索】基于OpenCV的“图像拼接特效”(这效果很实用啊)
  5. k3s containerd查看镜像命令示例
  6. python判断手机号码是否正确_Python实现随机生成手机号及正则验证手机号的方法...
  7. Reactive Extensions入门(4):Rx实战
  8. HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发
  9. 【python-NOJ-季总结】—【第八季:Pandas库】—表格Dataframe的建立和使用
  10. 矩阵理论——正交变换
  11. 为什么Redis 单线程却能支撑高并发?
  12. 英语单词默写本的制作
  13. RHEL 5 x86-64 无限制全速下载
  14. 苹果云服务icloud_苹果手机通讯录突然没了怎么办?分享简单的补救技巧
  15. 容器三把斧之 | namespace原理与实现
  16. 5G时代要来了?5G到底什么样?
  17. 信息系统项目管理10大管理
  18. 搜狗输入法怎么输入上下标
  19. 【Splay】[SGU 187]Twist and whirl - want to cheat
  20. 将ibd恢复进数据库

热门文章

  1. numpy.ma详解
  2. 【问底】严澜:数据挖掘入门——分词
  3. JAVA HashMap单key多value的实现及迭代器打印(附源码)
  4. 深入redis内部--实现双向链表
  5. Redis持久化实践及灾难恢复模拟
  6. 【风险管理】金融业务风控相关框架
  7. 【科技金融】互联网金融简介
  8. 评分卡开发方法论scorecard
  9. source insight使用说明[转]--后续发现好的再加
  10. shujufenxi:一季度中国人每天存700亿元!“报复性存款”能带来消费吗?