蒟蒻56分求助
  • 板块P1241 括号序列
  • 楼主ordoki
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/8/2 00:00
  • 上次更新2023/11/3 06:26:36
查看原帖
蒟蒻56分求助
735252
ordoki楼主2023/8/2 00:00
#include<bits/stdc++.h>
#define null NULL
using namespace std;
struct node{
	char data;
	int pos;
}Stack[105],S[105];
char s[105];
int top,sl,failer[105],cnt;
int main(){
	scanf("%s",s);
	sl=strlen(s);
	for(int i=0;i<sl;i++)
		S[i].data=s[i];
	for(int i=0;i<sl;i++){
		if((s[i]=='(')||(s[i]=='[')){
			Stack[++top].data=s[i];
			Stack[top].pos=i;
		}
		else{
			if(s[i]==')'){
				if(Stack[top].data=='(')
					top--;
				else
					failer[++cnt]=i;
			}
			if(s[i]==']'){
				if(Stack[top].data==']')
					top--;
				else
					failer[++cnt]=i;
			}
		}
	}
	for(int i=1;i<=top;i++)
		S[Stack[i].pos].pos=1;
	for(int i=1;i<=cnt;i++)
		S[failer[i]].pos=1;
	for(int i=0;i<sl;i++){
		if(S[i].pos)
			switch(S[i].data){
				case'(':
				case')':
					printf("()");
					break;
				case'[':
				case']':
					printf("[]");
					break;
				default:
					printf("%c",S[i].data);
			}
		else
			printf("%c",S[i].data);
	}
	return 0;
}

评测记录

2023/8/2 00:00
加载中...