文章

27

粉丝

0

获赞

59

访问

1.5k

头像
括号匹配 题解:依旧进栈出栈
P1501 西北工业大学机试题
发布于2026年3月12日 16:30
阅读数 112

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


int main(){

	string ss;
	getline(cin,ss);
	
	if(ss.size()%2!=0) {
		cout<<"NO";
		return 0;
	}
	bool flag = true;//标记一处地点
	
	stack<char> s1;
	for(int i=0;i<=ss.size();i++){//屎山判断,符号栈进栈出栈.
		if(ss[i]=='[') s1.push('[');
		if(ss[i]=='(') s1.push('(');
		if(ss[i]==']') {
			if(s1.top()=='[') {
			s1.pop();	
			}else {
				flag = false;
				break;
			}
		}
		if(ss[i]==')'){
			if(s1.top()=='('){
				s1.pop();
			}else{
				flag = false;
				break;
			}
		}
		else{
			flag = false;
			break;
		}
		
	}
   
	if(!s1.empty())  flag = false;
	
	if(flag) cout<<"YES";
	else cout<<"NO";

return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发