代码:
#include<iostream>
#include<stack>
using namespace std;
char reverse(char bbb){
switch(bbb){
case '(':return ')';
case '[':return ']';
case ')':return '(';
case ']':return '[';
}
return ' ';
}
bool cmp(char t,char y){
if(t==y)return 1;
else {
if(reverse(t)==y)return 1;
if(reverse(y)==t)return 1;
}
return 0;
}
int main(){
stack<int>s;
string a;
string ans;
cin>>a;
for(int i=0;i<a.size();i++){
char c=a[i];
if(!s.empty()){
if(s.top()==reverse(c)){
s.pop();
ans+=c;
}
else {
if(!(cmp(s.top(),c))){
ans+=reverse(s.top());
}
}
}
else {
s.push(c);
ans+=c;
}
}
cout<<ans;
}