Блок задач

1. Базовые навыки

Темы
Сложность 4

Задача «Баланс скобок (продвинутая версия)»

Развитие задачи «Баланс скобок», допускающее не только круглые скобки, а еще и квадратные [], фигурные {} и угловые <>.

Как вариант, функция должна пропускать символы, не являющиеся скобками.

int check_brackets(char *expression) 
{
    /* Функция возвращает 1, если скобочное выражение корректно, 
       или 0 в противном случае. */
}

Примечание. Работа функции должна быть протестирована с помощью макроса assert.

Примеры корректных выражений:

  • "{()[()]}<<<>>>"
  • "{}()<({}<>)>"

Примеры некорректных выражений:

  • "[(])"
  • "{{[]]}}"