Дано n пар скобок. Напишите функцию, которая генерирует все возможные комбинации правильных скобочных последовательностей.
Необходимо написать функцию generate_parentheses(n: int) -> List[str]
, которая будет принимать на вход целое число n
- количество пар скобок, и возвращать список строк - все возможные правильные скобочные последовательности.
Правильная скобочная последовательность - это последовательность скобок, которая удовлетворяет следующим условиям:
Например, для n=3
возможны следующие правильные скобочные последовательности:
result
для хранения всех возможных комбинаций скобок.generate(curr, left, right)
, которая принимает три аргумента: curr
- текущая скобочная последовательность, left
- количество оставшихся открывающих скобок, right
- количество оставшихся закрывающих скобок.left
и right
равны 0
, то добавляем текущую скобочную последовательность curr
в список result
.left
больше 0
, то рекурсивно вызываем функцию generate
с добавлением открывающей скобки (
в текущую последовательность curr
и уменьшением значения left
на 1.right
больше 0
и right
больше left
, то рекурсивно вызываем функцию generate
с добавлением закрывающей скобки )
в текущую последовательность curr
и уменьшением значения right
на 1.