SunXiaoping @ 2021-10-05 11:17:12
麻了,连绿题都不会做了
#include<bits/stdc++.h>
using namespace std;
string s,str;
char Stack[1001];//存储需要加的符号
int n,top=0,l;//top表示栈顶元素编号
int main()
{
cin>>s;
n=s.size();
for(int i=n-1;i>=0;i--)
{
if(s[i]==Stack[top]&&top>0)
{
Stack[top]='\0';
top--;
l++;
str+=s[i];
continue;
}
else if(top>0)
{
str+=Stack[top];
top--;
l++;
/*if(s[i]=='[')
{
str+=']';
str+='[';
l+=2;
}
if(s[i]=='(')
{
str+=')';
str+='(';
l+=2;
}*/
}
if(s[i]==')')
{
Stack[++top]='(';
str+=')';
l++;
continue;
}
else if(s[i]==']')
{
Stack[++top]='[';
str+=']';
l++;
continue;
}
else if(top==0)
{
if(s[i]=='[')
{
str+=']';
str+='[';
l+=2;
}
if(s[i]=='(')
{
str+=')';
str+='(';
l+=2;
}
}
}
if(top)
{
str+=Stack[top--];
l++;
}
for(int i=l-1;i>=0;i--)
{
printf("%c",str[i]);
}
}
by lwyzhx @ 2021-10-05 11:37:13
题理解错了应该是