此题是否添加spj与spj标签
根据管理的帖子说明了构造方式不唯一
然后我就喜拿60pts
#include <bits/stdc++.h>
using namespace std;
string s;
#define INF 0x3f3f3f3f
#define ll long long
vector <int> l;
vector <int> r;
bool p(char a,char b)
{
if(a=='('&&b==')') return true;
if(a==')'&&b=='(') return true;
if(a=='['&&b==']') return true;
if(a==']'&&b=='[') return true;
return false;
}
string rrr(char a)
{
string sss;
if(a=='[') sss="]";
if(a==']') sss="[";
if(a=='(') sss=")";
if(a==')') sss="(";
return sss;
}
int main()
{
string ans="";
cin>>s;
int len=s.size();
for(int i=0;i<len;i++)
{
if(s[i]=='('||s[i]=='[')
{
l.push_back(i);
}
else if(s[i]==')'||s[i]==']')
{
//cout<<s[i]<<"=="<<s[l.back()]<<"\n"<<i<<"->"<<l.back()<<"\n";
if(!l.empty()&&p(s[i],s[l.back()]))
{
l.pop_back();
//continue;
}
else cout<<rrr(s[i]);
}
cout<<s[i];
}
//cout<<s[1]<<"\n";
while(!l.empty()) { cout<<rrr(s[l.back()]); l.pop_back();}
return 0;
}