NYOJ--2--括号配对问题

来源:互联网 发布:好看的校园网络电影 编辑:程序博客网 时间:2024/06/11 20:12
/*Name: NYOJ--2--括号配对问题Author: shen_渊 Date: 18/04/17 21:15Description: 先入栈个‘#’ 就好做了 */#include<bits/stdc++.h> using namespace std;bool cmp(char,char) ;int main(){int n;cin>>n;while(n--){string str;cin>>str;stack<char> s;while(!s.empty())s.pop();s.push('#');//for(int i=0; i<str.size(); ++i){if(str[i]=='[' || str[i]=='(')s.push(str[i]);else if((str[i]==']' &&s.top()=='[') || (str[i]==')' && s.top()=='('))s.pop();elses.push(str[i]);}if(s.top() != '#')cout<<"No"<<endl;else cout<<"Yes"<<endl;while(s.top() != '#')s.pop();}return 0;}bool cmp(char c,char cc){if(c == '(' && cc == ')')return 1;else if(c == '[' && cc == ']')return 1;else return 0;}
/*仔细一想,于是…… */#include<bits/stdc++.h> using namespace std;bool cmp(char,char) ;int main(){int n;cin>>n;while(n--){string str;cin>>str;int a = 0,b = -1,pos; while(a != b){a = str.size();while((pos = str.find("()")) != string::npos)str.erase(pos,2);while((pos = str.find("[]")) != string::npos)str.erase(pos,2);b = str.size();} if(str == "")cout<<"Yes"<<endl;else cout<<"No"<<endl;}return 0;}


0 0
原创粉丝点击