YTU 2238: 括号匹配(栈和队列)
来源:互联网 发布:网络贷款 报警有用吗 编辑:程序博客网 时间:2024/05/29 16:13
2238: 括号匹配(栈和队列)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 42 Solved: 28
[Submit][Status][Web Board]
Description
假设一个算术表达式中可以包含三种括号:圆括号“(”和“)”,方括号“[”和“]”和花括号“{”和“ ”,且这三种括号可按任意的次序嵌套使用(如:…[…{… …[…]…]…[…]…(…)…)。编写判别给定表达式中所含括号是否正确配对出现的算法。输出结果YES 或者 NO。
Input
5+{[2X5]+2}
Output
YES
Sample Input
8-[{2+7]}
Sample Output
NO
HINT
Source
和昨天做的一道poj题差不多 巩固一下
ACcode:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int stack[100],top;int main(){ string s; while(cin>>s){ top=0; bool flag=true; for(int i=0;i<s.length();++i){ if(s[i]=='{') stack[top++]=3; else if(s[i]=='[') stack[top++]=2; else if(s[i]=='(') stack[top++]=1; else if(s[i]=='}'){ if(stack[top-1]==3) top--; else if(top==0){ flag=false; break; } else stack[top++]=3; }else if(s[i]==']'){ if(stack[top-1]==2) top--; else if(top==0){ flag=false; break; }else stack[top++]; }else if(s[i]==')'){ if(stack[top-1]==1) top--; else if(top==0){ flag=false; break; }else stack[top++]=1; } } //cout<<top<<'\12'; //for(int i=0;i<top;++i)printf("stack[%d]=%d\n",i,stack[i]); for(int i=0,j=top-1;i<=j;++i,--j) if(stack[i]!=stack[j]){ flag=false; break; } printf(flag?"YES\n":"NO\n"); } return 0;}
0 0
- YTU 2238: 括号匹配(栈和队列)
- 【数据结构】 栈和队列 YTU 2238 括号匹配(栈
- YTU OJ 2238: 括号匹配(栈和队列)
- YTU 3003: 括号匹配(栈和队列)
- 栈和队列---括号匹配
- [栈和队列]括号匹配
- 括号匹配(栈和队列)
- 烟大 2238: 括号匹配(栈和队列)
- 栈和队列应用之括号匹配
- C数据结构-栈和队列,括号匹配举例---ShinePans
- 数据结构栈和队列的括号匹配函数
- Problem C: 括号匹配(栈和队列)
- Problem C: 括号匹配(栈和队列)
- ytu 2242 回文(栈和队列)
- YTU OJ 2242: 回文(栈和队列)
- YTU.2244: 背包问题(栈和队列)
- 【数据结构】 栈和队列 YTU 2242: 回文(栈和队列)
- 寒假第三天--栈和队列--数据结构实验之栈四:括号匹配 (栈)
- HDOJ 2066 一个人的旅行(最短路,dijkstra算法)
- Jenkins知识地图
- Domino/Xpages Bootstrap 动态生成首页功能
- 堆排序
- 关于session监听浏览器关闭服务器执行destory的证实
- YTU 2238: 括号匹配(栈和队列)
- C++之内存分配
- (3)用const修饰函数的参数和函数的返回值
- Flume Interceptors
- 19.6 Restrictions and Limitations on Partitioning
- 黑马程序员_javaIO流下
- 使用vs 将wsdl文件自动生成代理类
- jfinal
- apache 反向代理tomcat设置