我希望您对我(在 Python 中)实现的该算法的时间和空间复杂度提出意见,以计算算法的复杂度以打印 n 对括号的所有有效(即正确打开和关闭)组合(查看所有有效组合n 对括号的)
def find_par_n(n):
s = set(["()"])
for i in range(2, n + 1):
set_to_add = set()
for str_ in s:
set_temp = set()
ana = set()
for j in range(len(str_) + 1):
str_c = str_[0:j] + '(' + str_[j:]
if str_c in ana:
continue
ana.add(str_c)
for k in range(j + 1, len(str_) + 1):
str_a = str_c
str_a = str_a[0:k] + ')' + str_a[k:]
set_temp.add(str_a)
set_to_add.update(set_temp)
s = set_to_add
return s
该算法很可能可以在时间和空间方面进行改进。请分享你的想法。