括号匹配(一) 栈的应用
来源:互联网 发布:php技术总监 编辑:程序博客网 时间:2024/05/18 22:42
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在,有一行括号序列,请你检查这行括号是否配对。
- 输入
- 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
- 输出
- 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
- 样例输入
3[(])(])([[]()])
- 样例输出
NoNoYes
- 来源
#include<iostream> #include<stack> #include<string>using namespace std; int main(){int n;cin>>n;while(n--){string a;stack<char> s;cin>>a;s.push(a[0]);int i,j=1;for(i=1;i<a.size();++i){j=i;//cout<<j<<" ";if((s.top()=='['&&a[i]==']')||(s.top()=='('&&a[i]==')')){s.pop();j++;}if(!s.empty()){if(!((s.top()=='['&&a[j]==']')||(s.top()=='('&&a[j]==')'))){s.push(a[j]);i=j;}else{s.pop();j++;i=j-1;}}if(s.empty()&&j<a.size()){s.push(a[j]);i=j;}//cout<<j<<" ";}//cout<<endl;if(s.empty())cout<<"Yes"<<endl;elsecout<<"No"<<endl;}}
- 括号匹配(一) 栈的应用
- 栈的应用(一)-括号匹配
- 栈应用 一(括号匹配)
- POJ1068--括号匹配(栈的应用)
- 栈的应用(括号匹配)
- 括号匹配(栈的应用code)
- 栈的应用:括号匹配
- 括号匹配---栈的应用
- 栈的应用---括号匹配
- 栈的应用---括号匹配
- 栈的应用--括号匹配()
- 括号匹配 栈的应用
- 栈的应用--括号匹配
- <数据结构>栈的应用一:括号匹配检测
- 【数据结构】栈的应用--括号的匹配(c++)
- 栈的应用-括号的匹配
- 栈的应用-括号的匹配
- 栈的应用--括号匹配的检验
- Eclipse配置Python的IDE
- 一段简单的内存检测代码
- 关于模板的思考
- So Beautiful 旅程——HTML5的多媒体支持
- 我选择了这条路
- 括号匹配(一) 栈的应用
- STL源码剖析---迭代器失效小结
- 内存问题
- 数据挖掘之AdaBoost算法
- eclipse代码折叠/展开之笔记本快捷键设置
- 记十年前的暑假
- 广度优先搜索C++练习题HDU 1242 Rescue
- Head First Java第2章练习泳池迷宫
- JNI编程:c++ 调用java 对象