UVA 673 (13.08.17)
2013-08-18 22:11
274 查看
Parentheses Balance |
(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 checktheir correctness. Your program can assume that the maximum stringlength is 128.
Input
The file contains a positive integern and a sequence of
n strings ofparentheses
() and
[], one string a line.
Output
A sequence ofYes or
No on the output file.
Sample Input
3 ([]) (([()]))) ([()[]()])()
Sample Output
Yes No Yes
题意: 匹配小括号和中括号~
做法及其注意点:
一种情况是遇到 '(' 或 '[', 那么直接放到栈里不解释~
另一种情况是遇到 ')' 或 ']', 进行判定, 是否前一个是 '(' 或 '[' (注意了, 此时栈也许是空的), 若是, 弹出栈~
最后判断是否为空~
AC代码:
#include<stdio.h> #include<stack> using namespace std; int main() { int T; char ch; scanf("%d", &T); getchar(); while(T--) { stack <char> sta; while(scanf("%c", &ch)) { if(ch == '\n') break; if(sta.empty()) { sta.push(ch); continue; } if(ch == '(') sta.push(ch); if(ch == ')') { if(sta.top() == '(') sta.pop(); else sta.push(ch); } if(ch == '[') sta.push(ch); if(ch == ']') { if(sta.top() == '[') sta.pop(); else sta.push(ch); } } if(sta.empty()) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- UVA 673 (13.08.17)
- UVA 673(括号配对)
- uva - 673
- UVa 673 平衡的括号
- UVa 673 - Parentheses Balance(链表)
- UVa673_ Parentheses Balance
- UVa673 Parentheses Balance
- uva 673 - Parentheses Balance
- UVA 673 - Parentheses Balance
- UVa-673-Parentheses Balance
- UVa OJ Parentheses Balance 673 括号平衡
- uva 673 Parentheses Balance 习题6-1 (栈——基础练习)
- uva 673 平衡的括号
- uva-673注意可能会给空串
- uva 673 Parentheses Balance
- uva 673 - Parentheses Balance
- UVA673 Parentheses Balance
- UVA-673平衡的括号
- Parentheses Balance UVA 673
- UVa-673-Parentheses Balance