uva 673 Parentheses Balance(栈)
2015-08-01 20:10
381 查看
Parentheses Balance
You are given a string consisting of parentheses () and []. A string of this type is said to be correct:(a)if it is the empty string(b)if A and B are correct, AB is correct,(c)if A is correct, (A) and [A] is correct.
Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.
Input
The file contains a positive integer n and a sequence of n stringsof parentheses () and [], one string a line.
Output
A sequence of Yes or No on the output file.Sample Input
3 ([]) (([()]))) ([()[]()])()
Sample Output
Yes No Yes
题目大意:确定括号是否匹配。
解题思路:左括号入栈,右括号匹配出栈,注意空语句要输出Yes。
#include <cstdio> #include <iostream> #include <cstdlib> #include <algorithm> #include <ctime> #include <cmath> #include <string> #include <cstring> #include <stack> #include <queue> #include <list> #include <vector> #include <map> #include <set> #define LL long long #define INF 0x3f3f3f3f #define PI 3.1415926535897932384626 #define eps 1e-10 #define maxm 400007 #define maxn 1000009 using namespace std; int main() { char s[150]; bool flag; int n; scanf("%d",&n); getchar(); while(n--) { flag=true; memset(s,0,sizeof s); gets(s); int len=strlen(s); stack<char>q; for(int i=0;i<len;i++) { if(s[i]=='('||s[i]=='[') { q.push(s[i]); } else if(s[i]==')') { if(q.empty()||q.top()!='(') { flag=false; break; } else { q.pop(); } } else if(s[i]==']') { if(q.empty()||q.top()!='[') { flag=false; break; } else { q.pop(); } } } if(flag&&q.empty()) puts("Yes"); else puts("No"); } return 0; }
相关文章推荐
- BP神经网络设计常用的基本方法和实用技术
- 一个工程师该如何高效工作
- Linux vsftpd移植笔记
- acdream 1023 xor按位思考
- 字符串是否为空
- java web系统架构设计需要解决的几个问题
- LeetCode#18 4 Sum
- MyBatis学习系列十:Spring集成
- 安装python
- java多线程4--死锁
- javascript是什么?
- HDU 4334 Trouble(hash + 枚举)
- 【Android常识】Android之父Andy Rubin:被乔布斯羡慕嫉妒的天才
- Qt 学习之路 2 --- 读书笔记
- Android 给按钮添加监听事件
- Word Maze 单词迷宫
- tesseract-OCR字符识别引擎使用入门
- cinnamon桌面安装在其他目录下
- hdoj.5120 Intersection【计算几何-两圆相交面积】 2015/08/01
- 判断输入的字符串中,大小写字母和数字的个数