80分WA

P1241 括号序列

WangYinxiAlex @ 2024-12-09 22:23:17

#include<iostream>
#include<stack>
#include<map>
using namespace std;
struct t{
    int w;
    int style;
};
stack<t>a;
bool l[500]={false};
int main(){
    a.push({0,0});
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++){
        if(s[i]=='(')a.push({i,1});
        if(s[i]=='[')a.push({i,2});
        if(s[i]==']'){
            if(a.top().style==2)a.pop();
            else l[i]=true;
        }
        if(s[i]==')'){
            if(a.top().style==1)a.pop();
            else l[i]=true;
        }
    }
    while(!a.empty()){
        l[a.top().w]=true;
        a.pop();
    }
    for(int i=0;i<s.size();i++){
        if(l[i]==true){
            if(s[i]=='('||s[i]==')')cout<<"()";
            if(s[i]=='['||s[i]==']')cout<<"[]";
        }else cout<<s[i];
    }
    cout<<endl;
    return 0;
}

|