表达式括号匹配_洛谷1739_栈
2016-07-24 19:47
267 查看
题目背景
你猜题目描述
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。输入格式:
一行:表达式输出格式:
一行:“YES” 或“NO”说明
别想太多,很简单的题解
感叹c++好强大,水题刷出了历史短想歪的一边站去
用栈记录括号,对左括号压入,右括号弹出,嗯就这样简单爆了噜
码
#include <iostream> #include <string> #include <stack> using namespace std; stack <int> s; int main() { string v; bool flag=false; cin>>v; for (int i=0;i<=v.length();i++) { char t=v[i]; if (t=='@') break; if (t=='(') s.push(1); else if (t==')'&&s.size()) s.pop(); else if (t==')'&&!s.size()) flag=true; } if (s.size()) flag=true; string ans=flag?"NO":"YES"; cout<<ans<<endl; return 0; }
相关文章推荐
- 为什么内部类调用外部变量,外部变量必须用final修饰
- 【杭电4548】美素数
- php URL图片资源传参生成对应尺寸图片
- redis 键值相关命令
- Google首席工程师Joshua Bloch谈如何设计优秀的API
- hdu5726 多校1 GCD【rmq+二分】
- Python函数第四节
- 自动驾驶汽车与打车公司结合
- Object-C 学习进程
- iOS之 手势识别GestureRecognizer
- EF基础知识概览
- 用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法
- 面向对象设计模式--单例模式
- 62.You are in the middle of a transaction updating a very important table. The machine on which a da
- Android 仿美团网,大众点评购买框悬浮效果之修改版
- BZOJ 2005: [Noi2010]能量采集
- 无人驾驶汽车的基本概念
- Hust oj 1052 Darts(翻译题)
- CodeForces 476A Dreamoon and Stairs
- linux系统的问题