同55
```
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<stack>
using namespace std;
int n;
char s[110];
stack<int> st;
bool p[110];
int main()
{
cin>>(s+1);
// cout<<s+1;
n=strlen(s+1);
memset(p,1,sizeof(p));
for(int i=1;i<=n;i++)
{
if(s[i]=='(') st.push(i);
if(s[i]==')') p[st.top()]=0,p[i]=0,st.pop();
}
// for(int i=1;i<=n;i++) cout<<s[i]<<" ";
for(int i=1;i<=n;i++)
{
if(p[i]==1)
{
if(s[i]=='(') printf("()");
if(s[i]=='['||s[i]==']') printf("[]");
}
else
{
if(s[i]=='(') printf("(");
if(s[i]==')') printf(")");
}
}
return 0;
}
```
by 诸神 @ 2018-11-06 21:52:26
同55:
```
#include<bits/stdc++.h>
using namespace std;
char a[210];
int q[110];
int main(){
cin>>a;
int tot=0,l=strlen(a);
for(register int i=0;i<l;i++){
q[tot++]=i;
if(a[i]==')'&&a[q[tot-2]]=='('||a[i]==']'&&a[q[tot-2]]=='[')tot-=2,q[tot]=q[tot+1]=0;
}
for(register int i=0;i<tot;i++){
switch(a[q[i]+i]){
case '(':{
for(register int j=l;j>q[i]+1+i;j--)a[j]=a[j-1];
a[q[i]+1+i]=')';
l++;
break;
}
case ')':{
for(register int j=l;j>q[i];j--)a[j]=a[j-1];
a[q[i]+i]='(';
l++;
break;
}
case '[':{
for(register int j=l;j>q[i]+1;j--)a[j]=a[j-1];
a[q[i]+1+i]=']';
l++;
break;
}
case ']':{
for(register int j=l;j>q[i];j--)a[j]=a[j-1];
a[q[i]+i]='[';
l++;
break;
}
}
}
cout<<a;
return 0;
}
```
by __OccDreamer__ @ 2019-08-15 22:21:10