40分求助
查看原帖
40分求助
1013002
bjqxszx_zhongqide楼主2024/4/13 11:28
#include<bits/stdc++.h>
using namespace std;
stack<int>z;
string a,b;
int main(){
    cin>>a;
    int n=a.size();
    for(int i=0;i<n;i++){
        if(a[i]=='('){
		   z.push(i);
		   b[i]=')';
		}
        if(a[i]=='['){
		   z.push(i);
		   b[i]=']';
		}
        if(a[i]==')'||a[i]==']')
            if(z.empty()||b[z.top()]!=a[i])
                if(a[i]==')'){
					b[i]='(';
				}
				else{
					b[i]='[';
				} 
            else{
				b[z.top()]=' ';
			}
    }
    for (int i=0;i<n;i++){
        if(b[i]=='('||b[i]=='['){
			cout<<b[i];
		}
        cout<<a[i];
        if(b[i]==')'||b[i]==']'){
			cout<<b[i];
		}
    }
    cout<<endl;
}
2024/4/13 11:28
加载中...