括号配对问题
来源:互联网 发布:站长之家源码 编辑:程序博客网 时间:2024/05/17 07:20
南洋理工学院
http://acm.nyist.net/JudgeOnline/problem.php?pid=2
题目信息:
现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0~100),表示有N组测试数据。
后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有”[“,”]”,”(“,”)”四种字符。
输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([])
样例输出
No
No
Yes
#include <iostream>#include <cstring>#include <stack>using namespace std;int main(){ int i,N,len; stack<char> s; bool flag; cin >> N; char str[10000]; while(N--){ flag = 1; cin >> str; len = strlen(str); for (i=0; i < len; i++) { if (str[i] == '[' || str[i] == '(') { s.push(str[i]); } else if (str[i] == ')') { if (s.empty() || s.top() != '(') { flag = 0; break; } else s.pop(); } else if (str[i] == ']') { if (s.empty() || s.top() != '[') { flag = 0; break; } else s.pop(); } } if (!s.empty()) { flag = 0; } if (flag) cout << "Yes\n"; else cout << "No\n"; for (int num=s.size(); num > 0; --num) { s.pop(); }//清空栈 /* while(!s.empty()){ s.pop(); }//与上作用相同 */ } return 0;}
0 0
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- NYOJ - 括号配对问题
- nyoj 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- [ACM]括号配对问题
- NYOJ2 括号配对问题
- 括号配对问题
- 2 括号配对问题
- 括号配对问题
- 括号配对问题
- 【括号配对问题 2】
- ASP.NET的路由系统:路由映射
- JavaScript——递归,嵌套和闭包
- vi vim的使用
- Redis之五种数据类型的简单增删改查
- REDIS CLUSTER简单安装配置
- 括号配对问题
- linux的setjmp函数和longjmp函数
- Caffe图片特征提取(Python/C++)
- ASP.NET的路由系统:根据路由规则生成URL
- 求教 oracle sql 能不能在条件为空时查询全部数据??纯sql写 谢谢
- iOS 自定义UIButton的title和image位置
- Xcode裁剪图片
- 公平锁与非公平锁
- 通过上传的APK文件,解析APK文件内容,获取应用权限包名等