Ctrl K

Все правильные скобочные строки

Средняя
Строка из круглых скобок правильная, если скобки в ней можно разбить на пары «открывающая — закрывающая», где открывающая стоит левее, а пары вложены друг в друга или идут подряд. Иначе говоря, в любом префиксе закрывающих скобок не больше, чем открывающих, а во всей строке их поровну. Дано число pairs. Верните все правильные строки ровно из pairs открывающих и pairs закрывающих скобок в любом порядке.
Пример 1
pairs=2 → ['(())', '()()']

Из двух пар скобок получаются ровно две правильные строки: (()) и ()().

Пример 2
pairs=3 → ['((()))', '(()())', '(())()', '()(())', '()()()']

Пять строк: ((())), (()()), (())(), ()(()), ()()(). А, например, ())(() не годится: после третьего символа закрывающих скобок больше, чем открывающих.

Пример 3
pairs=1 → ['()']
Ограничения
  • 1 ≤ pairs ≤ 8
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНарезка слова на палиндромы СредняяДва непересекающихся палиндрома СредняяДвоичная строка из степеней пятёрки СредняяВсе способы расставить пробелы СложнаяЛучший набор слов из фишек Сложная
загружаем Python…
Вход
pairs=2
Ожидается
['(())', '()()']

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 11 тестов на сервере, включая скрытые.