52分RE
查看原帖
52分RE
892625
WangYinxiAlex楼主2024/12/9 21:41
#include<iostream>
#include<stack>
#include<map>
using namespace std;
struct t{
	int w;
	int style;
};
stack<t>a;
bool l[500]={false};
int main(){
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]=='(')a.push({i,1});
		if(s[i]=='[')a.push({i,2});
		if(s[i]==']'){
			if(a.top().style==2)a.pop();
			else l[i]=true;
		}
		if(s[i]==')'){
			if(a.top().style==1)a.pop();
			else l[i]=true;
		}
	}
	while(!a.empty()){
		l[a.top().w]=true;
		a.pop();
	}
	for(int i=0;i<s.size();i++){
		if(l[i]==true){
			if(s[i]=='('||s[i]==')')cout<<"()";
			if(s[i]=='['||s[i]==']')cout<<"[]";
		}else cout<<s[i];
	}
	cout<<endl;
	return 0;
}

2024/12/9 21:41
加载中...