数据结构实验之栈与队列四:括号匹配
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;
}
数据结构实验之栈与队列四:括号匹配相关推荐
- sdut 2134 数据结构实验之栈与队列四:括号匹配
数据结构实验之栈与队列四:括号匹配 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...
- c语言中缀表达式求值_数据结构考研笔记之栈与队列(四)栈与队列应用括号匹配、中缀表达式转前缀后缀问题...
文字:独木 排版:独木 图片:独木 栈与队列 1.括号匹配问题 栈 例题1 例题2-----不匹配例题1 例题3-----不匹配例题2 2. 表达式求值问题 例题 1.中缀表达式转前缀表达式 2.中缀 ...
- SDUT-2449_数据结构实验之栈与队列十:走迷宫
数据结构实验之栈与队列十:走迷宫 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 一个由n * m 个格子组成的迷宫,起 ...
- SDUT-2132_数据结构实验之栈与队列二:一般算术表达式转换成后缀式
数据结构实验之栈与队列二:一般算术表达式转换成后缀式 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 对于一个基于二元运 ...
- sdut 2088 数据结构实验之栈与队列十一:refresh的停车场
数据结构实验之栈与队列十一:refresh的停车场 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem ...
- sdut 1479 数据结构实验之栈与队列九:行编辑器
数据结构实验之栈与队列九:行编辑器 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descript ...
- sdut 3335 数据结构实验之栈与队列八:栈的基本操作
数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descri ...
- sdut 3333 数据结构实验之栈与队列六:下一较大值(二)
数据结构实验之栈与队列六:下一较大值(二) Time Limit: 150MS Memory Limit: 8000KB Submit Statistic Discuss Problem Descri ...
- sdut-3332 数据结构实验之栈与队列五:下一较大值(一)
数据结构实验之栈与队列五:下一较大值(一) Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Desc ...
最新文章
- cv::cuda::split 使用
- Spring 2.5 基于注解驱动的 Spring MVC
- 区块链预言机(4)内在机制
- 【Opencv探索】基于OpenCV的“图像拼接特效”(这效果很实用啊)
- k3s containerd查看镜像命令示例
- python判断手机号码是否正确_Python实现随机生成手机号及正则验证手机号的方法...
- Reactive Extensions入门(4):Rx实战
- HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发
- 【python-NOJ-季总结】—【第八季:Pandas库】—表格Dataframe的建立和使用
- 矩阵理论——正交变换
- 为什么Redis 单线程却能支撑高并发?
- 英语单词默写本的制作
- RHEL 5 x86-64 无限制全速下载
- 苹果云服务icloud_苹果手机通讯录突然没了怎么办?分享简单的补救技巧
- 容器三把斧之 | namespace原理与实现
- 5G时代要来了?5G到底什么样?
- 信息系统项目管理10大管理
- 搜狗输入法怎么输入上下标
- 【Splay】[SGU 187]Twist and whirl - want to cheat
- 将ibd恢复进数据库