数组开更大后第五个测试点就WA了?

P1241 括号序列

kjh21373456 @ 2022-05-03 12:37:12


#include<stdio.h>
#include<string.h>
#include<stdbool.h>
int top;
int stack[105];
bool color[105];
int main()
{
    char s[1005];//这个写成105就AC了
    scanf("%s",s);
    int l=strlen(s);
    for(int i=0;i<l;i++)
    {
        if(s[i]==']')
        {
            if(top==0) continue;
            if(s[stack[top]]=='[')
            {
                color[stack[top]]=1;
                color[i]=1;
                top--;
            }
        }
        else if(s[i]==')')
        {
            if(top==0) continue;
            if(s[stack[top]]=='(')
            {
                color[stack[top]]=1;
                color[i]=1;
                top--;
            }
        }
        else
        stack[++top]=i;
    }
    for(int i=0;i<l;i++)
    {
        if(color[i]==1) printf("%c",s[i]);
        else
        {
            if(s[i]=='(' || s[i]==')') printf("()");
            else printf("[]");
        }
    }
}

|