NYOJ 括号配对问题

匿名 (未验证) 提交于 2019-12-03 00:30:01

没什么好说的,,是左括号进栈,右括号判断,就是容易出错注意细节


#include <iostream> #include <vector> #include <cstdio>  #include <stack> using namespace std; int n; stack<char> s; vector<char> vec; char sign;  int main() { 	cin>>n; 	getchar();//排除输入n的回车对后续输入的干扰  	while(n--){ 		int flag = 1; 		while((sign=cin.get())!='\n'){ 			vec.push_back(sign); 		} 		 		for(int i=0;i<vec.size();i++){ 			if(vec[i]=='('||vec[i]=='['){ 				s.push(vec[i]); 				continue; 			} 			if(s.empty()){ 				flag=0; 				break; 			} 		 			char stop = s.top(); 			if(stop=='('&&vec[i]==')'||stop=='['&&vec[i]==']'){ 				s.pop(); 			}	 			else { 				flag = 0; 				break; 			}			 		} 		 		if(flag==1&&s.empty())cout<<"Yes"<<endl; 		else cout<<"No"<<endl; 		 		while(!s.empty()) 		s.pop(); 		 		vec.clear(); 		 		 	} 	 	return 0; }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!