比赛 20191211 评测结果 AAAAAAAAAAAAA
题目名称 括号序列 最终得分 100
用户昵称 数声风笛ovo 运行时间 0.007 s
代码语言 C++ 内存使用 13.67 MiB
提交时间 2019-12-12 13:27:39
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int maxn=2333;
string s="([|])";
int ch[maxn],l;
char c[maxn];
int main(){
    freopen("bracket.in","r",stdin);
    freopen("bracket.out","w",stdout);
    scanf("%s\n",c+1);
    l=strlen(c+1);
    for(int i=1;i<=l;i++){
    	ch[i]=s.find(c[i])-2;
    }
    for(int i=1,j=1;i<=l;i++){
    	if(ch[i]>0){
            if(ch[i]+ch[j]==0){
                ch[i]=ch[j]=0;
                while(j>1&&ch[j]>=0){
                	j--;
                }
            }
        }
		else{
			j=i;
		} 
    }  
    for(int i=1;i<=l;i++){
    	if(ch[i]){
    		printf("%s",ch[i]%2?"[]":"()");
    	}  
        else{
        	printf("%c",c[i]);
        }
    }
    printf("\n");
    return 0;
}