Базовая рекурсия, проверка сбалансированных скобок - PullRequest
40 голосов
/ 26 апреля 2010

В прошлом я писал программное обеспечение, которое использует стек для проверки сбалансированных уравнений, но теперь меня просят рекурсивно написать аналогичный алгоритм для проверки правильности вложенных скобок и скобок.

Хорошие примеры: () [] () ([] () [])

Плохие примеры: ((] ([)]

Предположим, моя функция называется: isBalanced.

Должен ли каждый проход оценивать меньшую подстроку (до достижения базового случая 2 слева)? Или я должен всегда оценивать всю строку и перемещать индексы внутрь?

Ответы [ 11 ]

0 голосов
/ 26 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...