UVa 673 - Parentheses Balance
来源:互联网 发布:招聘数据 编辑:程序博客网 时间:2024/06/06 16:34
Parentheses Balance
You are given a string consisting of parentheses () and []. A string of this type is said to becorrect:
- (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
Miguel Revilla
2000-08-14
#include <cstdio>#include <iostream>#include <cstring>#include <stack>using namespace std; const int MAX = 150;stack<char> s;string buff;int n;bool find(char ch){if(s.empty())return false; if(ch==')') { if(s.top()=='(') { s.pop(); return true; } return false; }else if(ch==']'){ if(s.top()=='[') { s.pop(); return true; } return false;} }void solve(){int length = buff.size();bool ans=true; for(int i=0; i < length; i++){if(buff[i]=='('|| buff[i]=='[')s.push(buff[i]);else {if(!find(buff[i])){ans = false;break;}}}if(ans && s.empty()) printf("Yes\n"); else printf("No\n");}void init(){while(!s.empty())s.pop();} void read(){cin>>n;cin.get();while(n--){init();getline(cin, buff);solve();}}int main(){// freopen("in.txt","r",stdin); read();return 0;}
两点需要注意的地方,一个输入,一个在输出时需要判断栈是否为空,唉,贡献了好几个WA
1 0
- 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
- UVa 673 - Parentheses Balance
- UVA 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- Uva-673-Parentheses Balance
- UVa 673 - Parentheses Balance
- uva 673Parentheses Balance
- uva-673 Parentheses Balance
- UVA 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- uva 673 - Parentheses Balance
- uva 673 Parentheses Balance
- 那些不能错过的XCode插件
- Struts 1 Logic 标签 - Forward And Redirect
- Evernote实施三种安全保护功能
- Strut1+Spring2+Hibernate3 基础工作代码 流程
- sip研究7
- UVa 673 - Parentheses Balance
- 壬戌之秋
- strnumcmp的实现
- Linux下的多进程编程初步(转载)
- java实现直接插入排序
- Python定时运行脚本
- WIKIOI-1341 与3和5无关的数
- UVALive 4128 Steam Roller(多状态最短路)
- 东软睿道实训日记——第十天