题意
括号匹配。要求:1.空串合法。2.A和B都合法,AB合法。3.若A合法,(A)和[A]都合法。
思路
用栈储存,思路很简单。
总结
忘记写getchar导致出错很多次_(:з」∠)_ 智障啊
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <stack> using namespace std; int T; int main() { // freopen("in.txt","r",stdin); cin >> T; getchar(); while(T--){ string a; stack<char>s; getline(cin,a); int len = a.size(); for(int i = 0; i < len; i++){ if(s.empty()) s.push(a[i]); else{ if((a[i] == ')' && s.top() == '(') || (a[i] == ']' && s.top() == '[')) s.pop(); else s.push(a[i]); } } if(s.empty()) cout << "Yes" << endl; else cout << "No" << endl; } return 0; }