玄学!玄学!绝对玄学!
查看原帖
玄学!玄学!绝对玄学!
492791
hncsxzx楼主2022/5/1 16:22

原始代码:

#include<bits/stdc++.h>
using namespace std;
const int N=105;
char s[N];
bool vis[N];
int main()
{
    gets(s);
    int len=strlen(s);
    for(int i=0;i<len;i++)
    {
        if(s[i]==')')
        {
            for(int j=i-1;j>=0;j--)
            {
                if(s[j]=='('&&vis[j]==false)
                {
                    vis[i]=vis[j]=true;
                    break;
                }
                else if(s[j]=='['&&vis[j]==false)
                    break;
            }
        }
        else if(s[i]==']')
        {
            for(int j=i-1;j>=0;j--)
            {
                if(s[j]=='['&&vis[j]==false)
                {
                    vis[i]=vis[j]=true;
                    break;
                }
                else if(s[j]=='('&&vis[j]==false)
                    break;
            }
        }
    }
    for(int i=0;i<len;i++)
    {
        if(vis[i]==false)
        {
            if(s[i]=='('||s[i]==')')
                cout<<"()";
            else
                cout<<"[]";
        }
        else
            cout<<s[i];
    }
    puts("");
    return 0;
}

记录: https://www.luogu.com.cn/record/74924507

说什么输出太长了,但自己本地测了好多数据都没问题

结果,把char数组改成string,就A了,

#include<bits/stdc++.h>
using namespace std;
const int N=105;
string s;
bool vis[N];
int main()
{
    cin>>s;
    int len=s.size();
    for(int i=0;i<len;i++)
    {
        if(s[i]==')')
        {
            for(int j=i-1;j>=0;j--)
            {
                if(s[j]=='('&&vis[j]==false)
                {
                    vis[i]=vis[j]=true;
                    break;
                }
                else if(s[j]=='['&&vis[j]==false)
                    break;
            }
        }
        else if(s[i]==']')
        {
            for(int j=i-1;j>=0;j--)
            {
                if(s[j]=='['&&vis[j]==false)
                {
                    vis[i]=vis[j]=true;
                    break;
                }
                else if(s[j]=='('&&vis[j]==false)
                    break;
            }
        }
    }
    for(int i=0;i<len;i++)
    {
        if(vis[i]==false)
        {
            if(s[i]=='('||s[i]==')')
                cout<<"()";
            else
                cout<<"[]";
        }
        else
            cout<<s[i];
    }
    return 0;
}

记录: https://www.luogu.com.cn/record/74924955

有没有DALAO能解答一下~

2022/5/1 16:22
加载中...