一直63?
查看原帖
一直63?
478528
SunXiaoping楼主2021/10/5 11:17

麻了,连绿题都不会做了

#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]);
	}
}
2021/10/5 11:17
加载中...