UVA_673: Parentheses Balance
2015-10-14 17:07
381 查看
Description
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.
of parentheses () and [], one string a line.
the output file.
Sample
Sample
分析:本题是典型的栈的运用。对输入流的字符进行判断,如果是‘)‘或’]‘则比较栈顶,否则入栈。要注意空字符串也是合法。
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 onthe output file.
Sample
Input
3 ([]) (([()]))) ([()[]()])()
Sample
Output
Yes No Yes
分析:本题是典型的栈的运用。对输入流的字符进行判断,如果是‘)‘或’]‘则比较栈顶,否则入栈。要注意空字符串也是合法。
#include <iostream> #include <stack> #include <string> #include <cstdio> using namespace std; const int maxn = 130; stack<char> stk; char rev(int c) { if(c=='(')return ')'; if(c=='[')return ']'; } int main() { int T; cin >> T; getchar(); while(T--) { string s; getline(cin, s); int yes = 1; for(int i=0; i<s.length(); i++){ if(s[i]==')'||s[i]==']'){ if(stk.empty()){yes=0;break;} char c = stk.top(); if(s[i]==rev(c))stk.pop(); else {yes=0;break;} }else stk.push(s[i]); } if(yes && stk.size()>0) yes=0; if(yes)cout << "Yes\n"; else cout << "No\n"; while(!stk.empty())stk.pop(); } return 0; }
相关文章推荐
- mysql 全文搜索(转载http://blog.csdn.net/manbujingxin/article/details/6656992)
- uboot2010.06移植中一点感想
- 背包问题
- java操作mysql数据库遇到的问题
- delegate和event
- 编译Ralink SDK时碰到的奇怪错误(undefined reference to `main')的解决办法
- office 2010 ppt 中实现断裂字
- 我眼中的下拉刷新
- Python使用QRCode模块生成二维码
- Storm(四)Storm简单测试demo
- PowerDesigner创建表字段备注
- 读、写(记)(2015年10月14日)
- 我眼中的下拉刷新
- 我眼中的下拉刷新
- 深入讲解Python编程中的字符串
- Nginx+PHP+MySQL+Ubuntu14.04 64位环境搭建
- Oracle学习(七)之 Java通过JDBC操作oracle数据库
- ThinkPHP 整合bootstrap分页
- ios scroll view 原理
- c++关于函数的参数传递全部知识点详解