92分求助

P1241 括号序列

战斗天使 @ 2020-04-19 13:15:02

我检查了好久好久,就是A不过,真的想骂人了,我眼中怀疑是测评机的问题

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int a[105];
int main()
{
    int i,j;
    string s;
    cin>>s;
    for(i=0;i<s.length();i++)
    {
        if(s[i]==')')
        {
            for( j=i-1;j>=0;j--)
            {
                if(s[j]=='(' and a[j]==0)
                {
                    a[i]=a[j]=1;
                    break;
                }
                else if(s[j]=='[' and a[j]==0)
                {
                    break;
                }
            }
        }
        else if(s[i]==']')
        {
            for( j=i-1;j>=0;j--)
            {
                if(s[j]=='[' and a[j]==0)
                {
                    a[j]=a[i]=1;
                    break;
                }
                else if(s[j]=='(' and a[j]==0)
                {
                    break;
                }
            }
        }

    }

    for(i=0;i<=s.length()-1;i++)
    {
        if(a[i]==0) //如果没有标记
        {
            if(s[i]=='(' or s[i]==')')
            {
                cout<<"()";
            }
            else
            {
                cout<<"[]";
            }
        }
        else
        {
            cout<<s[i];
        }
    }

    return 0;
}

by 闪电皮卡丘 @ 2020-04-19 13:27:50

@van之风 出门右转,学习题解dalao的思路。努力搞懂就行了,没必要AC


by 战斗天使 @ 2020-04-19 13:38:52

@闪电皮卡丘 好的 谢谢!!已经AC,真的是洛谷的测评机问题 a[i]=a[j]=1换成a[j]=a[i]=1就可以了


by w6369499 @ 2020-05-06 15:12:40

我也遇到了92分的情况,找错误原因发现是要考虑到当输入未空的情况,就在第五个测试点的位置


|