последний вошёл - первый вышел.
Идёшь посимвольно, считываешь символ, если это скобка - добавляешь в массив. Если же считываешь скобку, противоположную последней скобке в массиве - удаляешь её из массива. Если в конце массив остался пустой - строка верна
можно просто счётчиком - скобка открылась ++
закрылась —
ушёл в минус, сразу вернул false
ну и в конце должен быть 0