UVa 673 - Parentheses Balance
2014-07-23 08:16
495 查看
Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld
& %llu
Description
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.
[], one string a line.
题目大意:
输入一个只含有 ‘(’ 、‘)’ 、‘[’ 、‘]’ 的序列,判断并输出括号是否匹配。
题目解析:
如果遇到 '(' 、'[' 就入栈,如果遇到 ')' 、']' 先判断栈是否为空,再判度栈顶是否匹配,如果匹配就弹出,否则就入栈。
最后判断是否为空,如果为空就输出Yes,否则No
& %llu
Description
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 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
Yes No Yes
题目大意:
输入一个只含有 ‘(’ 、‘)’ 、‘[’ 、‘]’ 的序列,判断并输出括号是否匹配。
题目解析:
如果遇到 '(' 、'[' 就入栈,如果遇到 ')' 、']' 先判断栈是否为空,再判度栈顶是否匹配,如果匹配就弹出,否则就入栈。
最后判断是否为空,如果为空就输出Yes,否则No
#include <iostream> #include <stdio.h> #include <stack> #include <string.h> using namespace std; const int N = 150; char str ; int main() { int t; while(scanf("%d",&t) != EOF) { getchar(); while(t--) { gets(str); //puts(str); stack<char> st; int len = strlen(str); for(int i = 0; i < len; i++) { if(str[i] == '(' || str[i] == '[') { st.push(str[i]); } else { if(st.size() && str[i] == ')' && st.top() == '(') { st.pop(); } else if( st.size() && str[i] == ']' && st.top() == '[') { st.pop(); } else st.push(str[i]); } } if(st.size() == 0) { printf("Yes\n"); } else { printf("No\n"); } } } return 0; }
相关文章推荐
- UVa 673 Parentheses Balance
- UVa 673 Parentheses Balance
- UVA673 :Parentheses Balance
- uva 673 - Parentheses Balance
- UVa 673 Parentheses Balance【栈】
- UVa 673 Parentheses Balance(2)
- uva673-Parentheses Balance
- UVA-673 Parentheses Balance
- Uva 673 Parentheses Balance 平衡的括号
- UVa 673 Parentheses Balance(栈)
- UVa 673 Parentheses Balance
- UVa673 - Parentheses Balance
- UVa - 673 - Parentheses Balance(栈-stack)(Java和C++)
- UVa673_ Parentheses Balance
- uva-673 Parentheses Balance
- UVa 673 - Parentheses Balance
- UVA673 Parentheses Balance
- 【STL基础02】UVA-673-Parentheses Balance
- Parentheses Balance-UVA - 673
- UVa OJ Parentheses Balance 673 括号平衡