括号匹配,题目简单,马蜂良好,WA求调
查看原帖
括号匹配,题目简单,马蜂良好,WA求调
773234
taqingqiu楼主2024/12/14 09:52
#include <bits/stdc++.h> 
using namespace std;
stack<char>s;
stack<char>v;
string a;
int T,f;          //f表示是否输出
int main () {
	cin>>T;
	while (T--) {
		cin>>a;
		if (a.size()%2==1) {
			cout<<"No\n";
			continue;
		}
		for (int i=a.size()-1;i>=0;i--) {
			s.push(a[i]);
		}
		while (!s.empty()) {
			if (s.top()=='(' || s.top()=='[') {
				v.push(s.top());
				s.pop();
			}
			else {
				if (!v.empty()) {
					if ((v.top()=='('&&s.top()==')') || (v.top()=='['&&s.top()==']')) {
						v.pop();
						s.pop();
					}
					else {
						f=1;
						cout<<"No\n";
						break;
					}
				}
				else {
					f=1;
					cout<<"No\n";
					break;
				}
			}
		}
		if (v.empty() && f==0) {
			cout<<"Yes\n";
		}
		else if (f==0) {
			cout<<"No\n";
		}
		f=0;
		int ls=s.size();
		int lv=v.size();
		while (ls--) {
			s.pop();
		}
		while (lv--) {
			v.pop();
		}
	}
}
2024/12/14 09:52
加载中...