数组开更大后第五个测试点就WA了?
查看原帖
数组开更大后第五个测试点就WA了?
621293
kjh21373456楼主2022/5/3 12:37
#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("[]");
		}
	}
}
2022/5/3 12:37
加载中...