您的位置:首页 > 其它

UVA - 673 Parentheses Balance

2014-12-10 23:47 309 查看

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 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
水题一道,用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);			else				all.pop();		}		if (all.empty())			cout << "Yes" << endl;		else			cout << "No" << endl;	}	return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: