首页 > 代码库 > 括号匹配(栈的应用)

括号匹配(栈的应用)

#include <iostream>
#include <stack>
#include <string>
using namespace std;

int main()
{
    int n;cin>>n;
    while(n--){
        stack<char> s;
        string str;cin>>str;
        for(int i=0;i!=str.length();i++){
            if(s.empty()) s.push(str[i]);
            else{
                if(s.top()==(){
                    if(str[i]==)) s.pop();
                    else s.push(str[i]);}
                else if(s.top()==[){
                    if(str[i]==]) s.pop();
                    else s.push(str[i]);
                }
                else {s.push(str[i]);}
            }
        }
        if(s.empty()) cout<<"Yes"<<endl;
        else cout<<"No"<<endl;

    }
    return 0;
}