增麽回事???????????哥哥姐姐们快看看,56
查看原帖
增麽回事???????????哥哥姐姐们快看看,56
1398547
Song_Mu_yun楼主2025/6/12 22:16
#include<bits/stdc++.h>
using namespace std;
string s;
int len,cnt,v,stt,f;
char a[1000001],z[1000001];
stack<char> q,p;
int main(){
	cin>>s;
	len=s.size();
	for(int i=0;i<len;i++){
		if(s[i]=='('||s[i]=='['){
			stt=i;
			f=1;
			break;
		}
	}
	if(f==0){
		for(int i=0;i<len;i++){
			if(s[i]==']')cout<<"[]";
			else cout<<"()";
		}
		return 0;
	}
	for(int i=stt;i<len;i++){
		if(s[i]=='['||s[i]=='(') q.push(s[i]); 
		else {
			if(s[i]==')'&&q.top()=='('){
				if(!q.empty()){
					q.pop();
					cnt+=2;
					a[cnt]=')';
					a[cnt-1]='(';
				}
			}else if(s[i]==']'&&q.top()=='['){
				if(!q.empty()){
					q.pop();cnt+=2;
					a[cnt]=']';
					a[cnt-1]='[';
				}
			}
			else if(s[i]==']'&&q.top()!='['){
				cnt+=2;
				a[cnt]=']';
				a[cnt-1]='[';
			}
			else if(s[i]==')'&&q.top()!='('){
				cnt+=2;
				a[cnt]=')';
				a[cnt-1]='(';
			}
		}
	}
	while(!q.empty()){
		z[++v]=q.top();
		q.pop();
	}
	for(int i=v;i>=1;i--){
		if(z[i]=='(')cout<<"()";
		else cout<<"[]";
	}
	for(int i=1;i<=cnt;i++) cout<<a[i]; 
	cout<<'\n';
	return 0;
}
2025/6/12 22:16
加载中...