swust oj 0116 括号匹配

来源:互联网 发布:java实现二叉树字典 编辑:程序博客网 时间:2024/06/16 21:15
14级卓越班选拔D 15级卓越班选拔D16级卓越班选拔D

题意描述: 在算术表达式中,除了加、减、乘、除等运算外,往往还有括号。包括有大括号{},中括号[],小括号(),尖括号<>等。 对于每一对括号,必须先左边括号,然后右边括号;如果有多个括号,则每种类型的左括号和右括号的个数必须相等;对于多重括号的情形,按运算规则,从外到内的括号嵌套顺序为:大括号->中括号->小括号->尖括号。例如,{[()]},{()},{{}}为一个合法的表达式,而([{}]),{([])},[{<>}]都是非法的。

Description

文件的第一行为一个整数n(1≤n≤100),接下来有n行仅由上述四类括号组成的括号表达式。第i+1行表示第i个表达式。每个括号表达式的长度不超过255。

Input

在输出文件中有N行,其中第I行对应第I个表达式的合法性,合法输出YES,非法输出NO。

Output
1
2
3
4
5
6
5
{[(&lt;&gt;)]}
[()]
&lt;&gt;()[]{}
[{}]
{()}
Sample Input

1

2

3

4

5

6

YES

YES

YES

NO

YES


鬼知道为什么scanf会超时,cin就不会,整整搞了我两天,还以为自己算法有问题==
#include<stdio.h>#include<iostream>#include<algorithm>#include<stack>#include<string.h>using namespace std;#define mem(x,y) memset(x,y,sizeof(x))int main(){int n;cin >> n;while (n--){char a[100];cin >> a;stack<char>b;int f = 1;for (int i = 0; a[i] != 0; i++){// (40 <60 [91  {123if (a[i] == '[' || a[i] == '(' || a[i] == '{' || a[i] == '<'){if (b.empty()){b.push(a[i]);continue;}else if (a[i] > b.top() && a[i] != '<'){f = 0;break;}else if (a[i] == '(' && b.top() == '<'){f = 0; break;}/*else if (a[i] == '<'){b.push(a[i]);}*/else{b.push(a[i]);}}else if (a[i] == ']' || a[i] == ')' || a[i] == '}' || a[i] == '>'){if (b.empty()){f = 0;break;}if (!b.empty() && a[i] == b.top() + 1 || a[i] == b.top() + 2){b.pop();}else{f = 0;break;}}}if (!b.empty()){f = 0;}if (f){cout << "YES" << '\n';}else{cout << "NO" << '\n';}}return 0;}

//by swust_t_p
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 表带活动圈坏了怎么办 手表固针h掉了怎么办 cad图全部倒过来了怎么办 电脑打数字变粗怎么办 wps表格输入数字变乱码怎么办 文档中光标变粗怎么办 wps排序有重复的怎么办 记英语数字老是混怎么办 苹果手机输入法出数字怎么办 word文档复制过来有底色怎么办 表格复制后还再显示复制符号怎么办 笔记本字母键打出数字怎么办 wps打字字上移了怎么办 微信里黑圈里面的白字是怎么办 脖子比脸黑好多怎么办 河南许昌小学生生病办休学怎么办 1岁宝宝内向胆小怎么办 3岁宝宝内向胆小怎么办 数学物理好不喜欢学医怎么办 孩子眉毛太浓了怎么办 小娃一年级成绩太差怎么办 孩子晚上睡得晚怎么办 在深圳买房难小孩读书怎么办 上海小孩读书积分不够怎么办 读书时静不下心怎么办 初中生静不下心读书怎么办 孩子学习静不下心怎么办 退烧后体温35度怎么办 孩子体温34度多怎么办 宝宝感冒咳嗽流鼻涕出汗怎么办 养的小鸡总打架怎么办 小鸡一条腿瘸了怎么办 同窝小斗鸡打架怎么办 夏季羊长的慢怎么办 1岁吃母乳不吃饭怎么办 5个月宝宝黏妈妈怎么办 九个月宝宝不爱吃饭怎么办 20个月宝宝吐了怎么办 十个月的宝宝消化不好怎么办 两岁宝宝不爱喝水怎么办 两岁宝宝不爱喝水吃饭怎么办