题目描述
思路:
本题就是一个简单的括号匹配问题,使用栈便可轻松解决。
具体代码:
#include <iostream> #include <string> #include <stack> using namespace std; bool isValid(string& s) { stack<char> sc; for(int i=0;i<s.size();++i) { switch(s[i]) { case '(': case '[': sc.push(s[i]); break; case ']': if(sc.empty()||sc.top()!='[') return false; else sc.pop(); break; case ')': if(sc.empty()||sc.top()!='(') return false; else sc.pop(); break; } } if(sc.empty()) return true; else return false; } int main() { // freopen("input.txt","r",stdin); int n; cin>>n; getchar(); string s; for(int i=0;i<n;++i) { getline(cin,s); if(s.empty()||isValid(s)) { cout<<"Yes"<<endl; } else cout<<"No"<<endl; } return 0; }