Parentheses Balance(673)
来源:互联网 发布:oracle sql nvl 编辑:程序博客网 时间:2024/05/29 07:15
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 strings of parentheses () and [], one string a line.Output
A sequence of Yes or No on the output file.Sample Input
3([])(([()])))([()[]()])()
Sample Output
YesNoYes
注:用堆栈,是(,[就入栈,),]就出栈
#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <cctype>#include <iostream>#include <algorithm>#include <vector>#include <stack>#include <deque>#include <queue>#include <set>#include <list> #include <map> #include <string>using namespace std; #define infinity 2147483647int gcd(int a,int b){return b==0?a:gcd(b,a%b);}int main(){int n,i,l,flag;char s[1000];stack<char>ss;while(scanf("%d",&n)!=EOF){getchar();while(n--){gets(s);while(!ss.empty()){ss.pop();}flag=1;l=strlen(s);for(i=0;i<l;i++){if(s[i]=='(' || s[i]=='[')ss.push(s[i]);else if(s[i]==')'){if(ss.empty()){flag=0;break;}else if(ss.top()=='(')ss.pop();else{flag=0;break;}}else if(s[i]==']'){if(ss.empty()){flag=0;break;}else if(ss.top()=='[')ss.pop();else{flag=0;break;}}}if(flag && ss.empty())cout <<"Yes" <<endl;elsecout <<"No" <<endl;}}return 0;}
0 0
- Parentheses Balance(673)
- uva 673 Parentheses Balance(栈)
- UVa 673 Parentheses Balance (stack)
- UVa 673 - Parentheses Balance(链表)
- uva 673 Parentheses Balance(栈)
- UVA - 673 - Parentheses Balance(栈)
- UVA 673 Parentheses Balance ( 栈 + 坑)
- UVA-673 Parentheses Balance (桟)
- UVa 673 Parentheses Balance
- uva 673 - Parentheses Balance
- 673 - Parentheses Balance
- Uva 673 Parentheses Balance
- UVaOJ 673 - Parentheses Balance
- uva 673 - Parentheses Balance
- UVa 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- 673 - Parentheses Balance
- UVA 673 Parentheses Balance
- C++时间与字符串转换
- 在linux下如何编译C++程序
- 实用网站总结
- Java之控制反转和依赖注入
- Android EditText聚焦时hint消失的简单代码
- Parentheses Balance(673)
- poj 2367
- C++中cin gets接连使用问题
- Cookie和Session
- crontab 详解
- learning Collection Framwork
- 利用layer的FillRule属性生成一个空心的layer
- Interface and Abstract stuff
- iOS编程规范