平衡的括号(Parentheses Balance,UVa 673)
2015-07-23 15:15
441 查看
此题链接单击这里
=================栈的基本应用,只能‘(’与‘[’入栈,每输入一个‘)’与‘]’就与栈顶对比,能形成‘()’与‘[]’就出栈,形成’(]’与‘[)’就输出No,当栈为空时就输出Yes。
还有单独出现‘(’‘[’‘)’‘]’都要输出No。。。。。。
附代码
#include <iostream> #include <stack> using namespace std; int main() { int n; cin >> n; cin.get(); while (n--) { stack<char>st_ch; int loge = 1; char c; while (cin.get(c) && c != '\n') { if (c == ')'&&loge) { if (st_ch.empty()) loge = 0; else if (st_ch.top() == '(') st_ch.pop(); else loge = 0; } else if (c == ']'&&loge) { if (st_ch.empty()) loge = 0; else if (st_ch.top() == '[') st_ch.pop(); else loge = 0; } else st_ch.push(c); } if (st_ch.empty()&&loge) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }
简单的栈类
#include <iostream> #include <cstdio> #include <stack> using namespace std; class Stack { char ch[130]; int t; public : Stack() { t=-1; } bool isempty() { if(t==-1) return true; else return false; } void charpush(char c) { t++; ch[t]=c; } char charpop() { return ch[t--]; } char chartop() { return ch[t]; } }; int main() { int n; cin >> n; cin.get(); while (n--) { Stack st_ch; int loge = 1; char c; while (cin.get(c) && c != '\n') { if (c == ')'&&loge) { if (st_ch.isempty()) loge = 0; else if (st_ch.chartop() == '(') st_ch.charpop(); else loge = 0; } else if (c == ']'&&loge) { if (st_ch.isempty()) loge = 0; else if (st_ch.chartop() == '[') st_ch.charpop(); else loge = 0; } else st_ch.charpush(c); } if (st_ch.isempty()&&loge) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }
有问题联系企鹅791267032
邮箱地址….wutanrong@Hotmail.com
相关文章推荐
- 数据结构中的基本概念
- https与http的区别
- Java并发编程:Callable、Future和FutureTask
- S3100系列交换机管理VLAN的配置
- 不可或缺 Windows Native (25) - C++: windows app native, android app native, ios app native
- Java OCR 图像智能字符识别技术,可识别中文
- iOS之第三方库以及XCode插件介绍
- 11 个 Visual Studio 代码性能分析工具
- Redis学习笔记(一)应用场景
- Linux源码安装
- GRE写作必备句型
- 逻辑回归与决策树在分类上的一些区别
- STM32f103的电阻触摸屏的五点校正算法
- python-celery使用教程
- Android之常用Tools【介绍及使用】
- linux常用命令之bash 入门指南
- 我理解的闭包
- (转)值得推荐的C/C++框架和库
- ahjesus Axure RP 7.0注册码
- 打开一个activity,让edittext不获得焦点