UVA 673 (13.08.17)
2013-08-17 20:43
288 查看
Parentheses Balance |
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 checktheir correctness. Your program can assume that the maximum stringlength is 128.
Input
The file contains a positive integer n and a sequence of n strings ofparentheses() and [], one string a line.
Output
A sequence of Yes 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 Parentheses Balance
- UVa 673 - Parentheses Balance
- UVA673解题报告
- uva 673 - Parentheses Balance
- UVA 673 括号的匹配——经典栈的应用
- uva673-栈-(字符读取和清空缓冲区)
- [UVa 673] 平衡的括号(Parentheses Balance)
- UVA - 673 Parentheses Balance
- UVa 673 Parentheses Balance -SilverN
- 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
- 习题6-1 平衡的括号 UVa673
- UVA 673 - Parentheses Balance
- UVA - 673 Parentheses Balance