括号配对问题
来源:互联网 发布:知乎 注册信贷分析师 编辑:程序博客网 时间:2024/06/07 03:12
问题描述:现在,有一行括号序列,请你检查这行括号是否配对。
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于 10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
解决思路:一对配对的括号,包含左右两个括号。遍历字符串,把左括号压入 栈中,遇到右括号时,栈不为空且栈顶元素是相匹配
的左括号时,将栈顶元素pop。
#include<iostream>#include<string>#include<stack>using namespace std;int main(){int N;cin >> N;string ch[5];int i = 0;while (i < N){cin >> ch[i++];}int j = 0;while (j<N){stack<char> s;string mark="Yes";for (int i = 0; i < ch[j].length(); i++){if (ch[j][i] == '('){s.push(ch[j][i]);}else if (ch[j][i] == ')'){if (s.empty() || s.top() != '('){mark="No"; break;}else{s.pop();}}else if (ch[j][i] == '['){s.push(ch[j][i]);}else if (ch[j][i] == ']'){if (s.empty()||(s.top()!='[')){mark = "No";break;}else{s.pop();}}}j++;cout << mark << endl;}system("pause");}
不是最佳方法,在南阳理工acm提交时runtimeerror,水平有待提高。。。。
阅读全文
0 0
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- NYOJ - 括号配对问题
- nyoj 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- 括号配对问题
- [ACM]括号配对问题
- NYOJ2 括号配对问题
- 括号配对问题
- 2 括号配对问题
- 括号配对问题
- 括号配对问题
- 【括号配对问题 2】
- Hdu-6200 mustedge mustedge mustedge(动态树+并查集)
- 菜鸟学设计模式----责任链模式
- 下拉选择框,PopupWindow的使用
- SpringMVC——静态资源访问之<mvc:annotation-driven/>与<mvc:default-servlet-handler/>
- 二叉树问题合集
- 括号配对问题
- platform平台device和driver如何匹配
- 预编译的作用和目的
- 简述page指令的各个属性的值
- [中等] UVa OJ 10003 Cutting Sticks 动态规划
- Android animation属性动画
- Selenium with Python中文翻译(四)
- 生物信息学-批量上传文件
- 51nod 1101 换零钱 完全背包计数