避坑!先定义栈即可ac
查看原帖
避坑!先定义栈即可ac
477908
Icefruit楼主2021/10/17 18:33
include<stack>
#include<string>
#include<iostream>
using namespace std;
string s,b;//先定义了字符串,会RE
stack<int>q;
int main()
{
	cin>>s;
	int l=s.size();
	for(int i=0;i<l;i++)
	{
		if(s[i]=='(')
		{
			q.push(i);
			b[i]=')';
		}
		if(s[i]=='[')
		{
			q.push(i);
			b[i]=']';
		}
		if(s[i]==')' or s[i]==']')
			if(q.empty() or b[q.top()]!=s[i])			
				if(s[i]==')') 
					b[i]='(';
				else 
					b[i]='[';			
			else b[q.top()]=' ',q.pop();															
	}
	for(int i=0;i<l;i++)
	{
		if(b[i]=='('||b[i]=='[')
			cout<<b[i];
		cout<<s[i];
		if(b[i]==')'||b[i]==']')
			cout<<b[i];
	}
	cout<<endl;
} 
2021/10/17 18:33
加载中...