Jared0503 @ 2024-01-23 19:58:52
代码献上
#include<bits/stdc++.h>
using namespace std;
struct node{
char s[101];
int num[101],top;
}op[2];
int i,j;
string bin="",ans="";
int main()
{
char a;
while(cin>>a)
{
bin=bin+' '+a+' ';
if(a=='(') op[0].s[++op[0].top]=a,op[0].num[op[0].top]=++i;
else if(a=='[') op[1].s[++op[1].top]=a,op[1].num[op[1].top]=++i;
else if(a==')'&&op[0].s[op[0].top]=='(') op[0].top--;
else if(a==')') op[0].s[++op[0].top]=a,op[0].num[op[0].top]=++i;
else if(a==']'&&op[1].s[op[1].top]=='[') op[1].top--;
else if(a==']') op[1].s[++op[1].top]=a,op[1].num[op[1].top]=++i;
}
//(num.top()+1)*2-1
//0123
//([()
//
//012345678901
// ( [ ( )
while(op[0].top)
{
// cout<<op[0].num[op[0].top]<<' ';
if(op[0].s[op[0].top]=='(') bin[op[0].num[op[0].top]*3]=')';
else bin[op[0].num[op[0].top]*3]='(';
op[0].top--;
}
while(op[1].top)
{
// cout<<op[1].num[op[1].top]<<' ';
if(op[1].s[op[1].top]=='[') bin[op[1].num[op[1].top]*3]=']';
else bin[op[1].num[op[1].top]*3]='[';
op[1].top--;
}
for(i=0;i<bin.size();i++) if(bin[i]!=' ') ans+=bin[i];
cout<<ans;
}
by D23lhc @ 2024-01-23 20:13:02
#include <bits/stdc++.h>
using namespace std;
int top,w[110];
string a;
char s[110],c[110];
int main()
{
cin >> a;
int n=a.length();
for(int i=0;i<n;i++)
{
if(a[i] == '(' || a[i] == '[')
{
s[++top]=a[i];
w[top]=i;
if(a[i] == '(') c[i]=')';
else c[i]=']';
}
if(a[i] == ')')
{
if(top && s[top] == '(') {c[w[top]]=' '; top--;}
else c[i]='(';
}
if(a[i] == ']')
{
if(top && s[top] == '[') {c[w[top]]=' '; top--;}
else c[i]='[';
}
}
for(int i=0;i<n;i++)
{
if(c[i] == '(' || c[i] == '[') printf("%c%c",c[i],a[i]);
else if(c[i] == ')' || c[i] == ']') printf("%c%c",a[i],c[i]);
else printf("%c",a[i]);
}
return 0;
}
@Jared0503
by D23lhc @ 2024-01-23 20:14:01
给个关注 QWQ
by Jared0503 @ 2024-01-24 09:01:16
@D23lhc 已关,谢谢