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;
}