В случае наличия скобок нескольких типов всё становится чуть сложнее. Мы создаём стек, выполняющий роль той переменной balance. Это нужно, поскольку скобки не могут перекрываться. Проходя по строке и встречая открывающую скобку, мы кладём её в стек. Встречая закрывающую, мы пытаемся вынуть из стека открывающую скобку этого типа. Если на стеке лежит скобка другого типа, последовательность неправильная. Если в конце стек оказался непустым, последовательность также неправильная.