社区讨论
增麽回事???????????哥哥姐姐们快看看,56
P1241括号序列参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mbu4ncg1
- 此快照首次捕获于
- 2025/06/13 09:26 9 个月前
- 此快照最后确认于
- 2025/11/04 07:13 4 个月前
CPP
#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;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...