88分wa#12求助
查看原帖
88分wa#12求助
947892
Khalil_Fong楼主2023/11/13 19:03
#include<bits/stdc++.h>
using namespace std;
bool p[1200];
int z[1200];
int main(){
	string s;
	cin>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]==')'||s[i]==']'){
			int j=i;
			char c,cc;
			if(s[i]==')')  c='(',cc='[';
			else  c='[',cc='(';
			for(j;j>=0;j--){
				if(s[j]==cc&&!p[j]){
					break;
				}
				if(s[j]==c&&!p[j]){
					p[j]=1;
					p[i]=1;
					break;
				}
			}
		}
	}
	int k=0;
	for(int i=0;i<s.size();i++){
		if(!p[i]) z[++k]=i;
	}
	int index=1;
	if((s[0]==']'||s[0]==')')&&!p[0]){
		if(s[0]==']') cout<<'[';
		else if(s[0]==')') cout<<'(';
	} 
	for(int i=0;i<s.size();i++){
		cout<<s[i];
		if(i==z[index]){
			index++;
			if(s[i]=='(') cout<<')';
			if(s[i]=='[')cout<<']';
		}
		if(i+1==z[index]&&i+1<s.size()&&(s[i+1]==')'||s[i+1]==']')){
			index++;
			if(s[i+1]==')') cout<<'(';
			if(s[i+1]==']') cout<<'[';
		}
	}
	return 0;
}
2023/11/13 19:03
加载中...