【习题 6-1 UVA-673】Parentheses Balance

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

括号匹配。 栈模拟就好。 多种括号也是一样可以做的。

【代码】

#include <bits/stdc++.h>
using namespace std;

const int N = 150;

stack <char> sta;
string s;

int main() {
	#ifdef LOCAL_DEFINE
		freopen("F:\\c++source\\rush_in.txt", "r", stdin);
	#endif
	ios::sync_with_stdio(0),cin.tie(0);
	int T;
	cin >> T;cin.get();
	while (T--) {
		while (!sta.empty()) sta.pop();
		getline(cin,s);
		int n= s.size();
		int ok = 1;
		for (int i = 0;i < n;i++){
			if (s[i]=='(' || s[i] == '[')
				sta.push(s[i]);
			else if (!sta.empty() && sta.top()=='(' && s[i]==')') sta.pop();
				else if (!sta.empty() && sta.top()=='[' && s[i]==']') sta.pop();
					else ok = 0;
		}
		if (!sta.empty()) ok = 0;
		if (!ok){
		 	cout << "No" << endl;
		}else{
		 	cout << "Yes"<<endl;
		}
	}


	return 0;
}
posted @ 2017-11-18 20:10  AWCXV  阅读(243)  评论(0编辑  收藏  举报