Задача 43: Скобки(2)
Условие задачи:
Вывести все правильные скобочные выражения длиной \(N\), состоящие из круглых и квадратных скобок.
Входные данные:
В первой строке находится единственное число \(N\). \(1 <= N <= 14\), \(N\) - чётное.
Выходные данные:
Каждое выражение выводится в отдельной строке, порядок вывода последовательностей произвольный.
Решение:
import sys
sys.setrecursionlimit(10 ** 9)
n = int(input())
rez = ["" for _ in range(n)]
d = {")": "(", "]": "["}
def f(i, st):
global rez
if i == n:
if not st:
print(*rez, sep="")
return
for j in ["[", "(", ")", "]"]:
if j not in d:
if len(st) < n - i:
rez[i] = j
f(i + 1, st + j)
else:
if st and st[-1] == d[j]:
rez[i] = j
f(i + 1, st[:-1])
f(0, "")
У вас включен блокировщик рекламы. Пожалуйста, выключите его чтобы увидеть решения. На этом сайте не так много рекламы, а кушать что-то надо. Вот котик
Пожалуйста, подождите загрузки решения