1

n ペアの括弧のすべての有効な (つまり、適切に開いて閉じた) 組み合わせを出力するアルゴリズムの複雑さを計算するために (Python で) 実装したこのアルゴリズムの時間と空間の複雑さについてご意見をお聞かせください (すべての有効な組み合わせを参照)。括弧の 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

ほとんどの場合、アルゴリズムは時間と空間の点で改善できます。あなたの考えを共有してください。

4

5 に答える 5