代码如下:
#include<bits/stdc++.h>
using namespace std;
bool pd[105]={false};
vector<char> q;
vector<char> p;
int main(){
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(0);
string s;
int cnt;
cin>>s;
int sizer=s.size();
for(int i=0;i<sizer;i++){
cnt=0;
if(s[i]=='('||s[i]=='['){
q.push_back(s[i]);
}else{
if(s[i]==')'){
while(q.size()){
cnt++;
p.push_back(q.back());
q.pop_back();
if(p.front()=='['){
break;
}else if(p.front()=='('&&!pd[i]){
pd[i]=true;
pd[i-cnt]=true;
break;
}
}
while(cnt--){
q.push_back(p.back());
p.pop_back();
}
}else{
while(q.size()){
cnt++;
p.push_back(q.back());
q.pop_back();
if(p.front()=='('){
break;
}else if(p.front()=='['&&!pd[i]){
pd[i]=true;
pd[i-cnt]=true;
break;
}
}
while(p.size()){
q.push_back(p.back());
p.pop_back();
}
}
}
}
for(int i=0;i<sizer;i++){
if(!pd[i]){
if(s[i]==')'||s[i]=='('){
cout<<"()";
}else{
cout<<"[]";
}
}else{
cout<<s[i];
}
}
return 0;
}