关于spj
  • 板块P1241 括号序列
  • 楼主02Ljh
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/11/4 18:34
  • 上次更新2023/10/27 04:19:28
查看原帖
关于spj
578004
02Ljh楼主2022/11/4 18:34

此题是否添加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;
}

2022/11/4 18:34
加载中...