您的位置:首页 > 其它

UVA - 673 Parentheses Balance

2014-12-10 23:47 423 查看

Parentheses Balance

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 anda sequence of n strings of parentheses () and [],one string a line.

Output

A sequence of Yes or No onthe output file.

SampleInput

3
([])
(([()])))
([()[]()])()

SampleOutput

Yes
No
Yes
水题一道,用stack
#include <iostream>#include <stack>#include <string>#include <algorithm>using namespace std;bool is_ok(char x, char y){if (x == '(') return y == ')';if (x == '[') return y == ']';return false;}int main(){int T; cin >> T;cin.get();while (T--){string str; getline(cin, str);stack<char> all;for (size_t i = 0; i < str.length(); i++){char t = str[i];if (all.empty() || !is_ok(all.top(), t))all.push(t);elseall.pop();}if (all.empty())cout << "Yes" << endl;elsecout << "No" << endl;}return 0;}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: