UVA-673 括号匹配--栈
2017-02-03 16:32
337 查看
如果是一个合法的序列,每对配对的括号的两个字符(‘(’ 和 ')' 或者 '[' 和 ']')一定是相邻的,每次判断下该字符是否有配对即可。
如果配对,将左括号出栈即可。特别注意:空格也是合法的。
AC代码:
如有不当之处欢迎指出!
如果配对,将左括号出栈即可。特别注意:空格也是合法的。
AC代码:
#include<cstdio> #include<stack> using namespace std; const int maxn = 200; char str[maxn]; stack<char>s; bool Balance(){ char ch; for(int i = 0; str[i] != '\n'; ++i){ if(str[i] == ' ') continue; if(!s.empty()) { ch = s.top(); if(ch == '(' && str[i] == ')' || ch == '[' && str[i] == ']') s.pop(); else s.push(str[i]); } else s.push(str[i]); } if(s.empty()) return true; else while(!s.empty()) s.pop(); return false; } int main(){ int T; scanf("%d", &T); getchar(); while(T--){ fgets(str, sizeof(str), stdin); if(Balance()) printf("Yes\n"); else printf("No\n"); } return 0; }
如有不当之处欢迎指出!
相关文章推荐
- 用并查集判断一个图是否全连通&无回路(1272)
- 如何快速转载CSDN中的博客
- mac crt无法记住密码的解决方法
- 获取android项目中sqlite数据库
- Redis 介绍与安装
- 详解 QT 布局管理界面 图文并茂
- Codeforces 474D Flowers 线性DP
- dos命令下修改mysql密码的方法
- keychains
- Java解析json(三):fastjson
- Android Activity堆栈详解
- Android事件传递
- py-faster-rcnn制作自己的数据集做目标检测
- 操作系统与网络实现 之二十三(乙)
- VO对象和PO对象的区别
- python 操作数据库
- Java解析json(二):jackson
- Redis 注册为系统服务,修改账号密码
- Chapter_2 算法分析:快速求幂法
- Java中将int 转成对应的16进制字符串