beretty @ 2017-10-12 19:29:22
**改了不少时间了QWQ
**一直W1,2,3,12,13点
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s[102];
int p[102],n;
bool flag;
void pp(char ch)
{
if(ch=='(') printf("()");
else if(ch=='[') printf("[]");
}
int change(char c)
{
if(c=='(') return 1;
if(c==')') return -1;
if(c=='[') return 101;
if(c==']') return -101;
return 0;
}
void out()
{
int i;
for(i=0;i<n;i++)
{
if(p[i]==0) printf("%c",s[i]);
else
{
if(p[i]==-1||p[i]==1)
printf("()");
else if(p[i]==101||p[i]==-101)
printf("[]");
}
}
}
int main()
{
int i,j,k;
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
p[i]=change(s[i]);
for(i=0;i<n;i++)
{
if(p[i]>0)
for(j=i+1;j<n;j++)
{
if(p[j]==p[i]) break;
else
if(p[i]+p[j]==0)
{
p[i]=0;
p[j]=0;
break;
}
}
else if(p[i]<0)
for(j=i-1;j>=0;j--)
{
if(p[j]==p[i]) break;
if(p[i]+p[j]==0)
{
p[i]=0;
p[j]=0;
break;
}
}
}
out();
return 0;
}
by violinwang @ 2018-05-05 17:26:47
同上
by 迈吉扣 @ 2018-07-30 09:46:54
给一个数据:
输入:(((])[[(]]]](
AC:()()([])[][]()[][][][]()
WA:()()([])[[()]][][]()
by return_dirt @ 2020-04-10 22:43:38
@迈吉扣 太感谢了