Алгоритм лексикографического перечисления правильных скобочных последовательностей работает следующим образом: www.e-maxx-ru.1gb.ru www.geeksforgeeks.org
- Находится крайняя правая открывающая скобка, которую можно заменить закрывающей скобкой, чтобы получить лексикографически увеличенную строку скобок. www.geeksforgeeks.org
- Оставшаяся часть строки заполняется лексикографически минимальной. www.geeksforgeeks.org То есть сначала как можно большим количеством открывающих скобок, а затем заполняются оставшиеся позиции закрывающими скобками. www.geeksforgeeks.org Другими словами, оставляется без изменения как можно более длинный префикс исходной последовательности, а в суффиксе эта последовательность заменяется на лексикографически минимальную. www.e-maxx-ru.1gb.ru www.geeksforgeeks.org
- Чтобы найти эту позицию, перебирают символ справа налево и сохраняют баланс глубины открывающих и закрывающих скобок. www.geeksforgeeks.org Когда встречают открывающую скобку, уменьшают глубину, а когда закрывающую — увеличивают её. www.geeksforgeeks.org
- Если в какой-то момент встречают открывающую скобку, а баланс после обработки этого символа положительный, значит, нашли крайнюю правую позицию, которую можно изменить. www.geeksforgeeks.org Меняют символ, вычисляют количество открывающих и закрывающих скобок, которые нужно добавить с правой стороны, и упорядочивают их лексикографически минимальным образом. www.geeksforgeeks.org
- Если не находят подходящей позиции, то эта последовательность уже является максимально возможной, и ответа нет. www.geeksforgeeks.org
Таким образом, алгоритм перебирает все возможные варианты последующих скобок для каждого возможного префикса, что и позволяет получить все возможные правильные скобочные последовательности в лексикографическом порядке. neerc.ifmo.ru