ниже. Я загрузил код, чтобы проверить, сбалансированы ли скобки в строке или нет. Они работают для 1 ввода, но для нескольких тестовых систем правильный выход не работает. ПОЖАЛУЙСТА, ПОМОГАЙТЕСЬ.некорректный вывод при использовании тестовых корпусов, иначе он работает нормально (используются стеки)
int main()
{
int t;
cin >>t;
cin.ignore();
while(t--)
{
{
stack s;
char *st;
st=new char[100];
gets(st);
s.create(strlen(st));
if(!count_elem(st))//counts if the brackets are in pairs or not
cout << "NO" <<endl;
else
func1(s,st);
}
}
return 0;
}
void func1(stack s,char *st)
{
static int i=0,flag=0;
// printf("%d %d\n",i,flag);
if(st[i]=='(' || st[i]=='{' || st[i]=='[')
{
flag=1;
s.push(st[i]);
}
else
{
if(s.isEmpty())
flag=0;
else
{
if(st[i]=='}')
{
//printf("%c\n",s.get_top());
if(s.get_top()=='{')
{
flag=1;
s.pop();
}
else
flag=0;
}
if(st[i]==')')
{
//printf("%c\n",s.get_top());
if(s.get_top()=='(')
{
flag=1;
s.pop();
}
else
flag=0;
}
if (st[i]==']')
{
//printf("%c\n",s.get_top());
if(s.get_top()=='[')
{
flag=1;
s.pop();
}
else
flag=0;
}
}
}
i++;
if(flag==1)
{
if(i<strlen(st))
func1(s,st);
else
cout << "YES"<<endl;
}
else
cout << "NO"<< endl;
}
Для какого теста это не удается? – Beta
первый тестовый тест всегда правильный, но он просто показывает некоторый случайный вывод для всех остальных тестовых примеров. – cooltogo
Первый, а? Я не спрашивал вас, сколько * тестов он терпит неудачу, я не спрашивал вас *, в каком порядке * вы запускаете прохождение и неудачные тесты, я просил провалить тест. Голосование закрывается. – Beta