【STL】UVa673 - Parentheses Balance

题意

括号匹配。要求: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;
}

 

posted @ 2016-10-18 15:12  kikii233  阅读(125)  评论(0)    收藏  举报