1. 程式人生 > >合法括號組合的生成

合法括號組合的生成

描述

     給定括號的個數n,編寫程式生成所有格式正確的括號組合。

輸入格式 

輸入一個整數。

輸出格式

    輸出為一個列表,每個元素是一個字串,表示一個可能的括號組合。

輸入輸出示例

輸入輸出
示例 1
3
['((()))', '(()())', '(())()', '()(())', '()()()']
這個是正確的可以跑對的程式碼
def foo(output, open, close, pairs):
     if open == pairs and close ==pairs:
          ls.append(output)
     else:
          if open<pairs:
               foo(output+"(", open+1, close, pairs)
          if close<open:
               foo(output+")", open, close+1, pairs)
               
n = eval(input())
ls=[]
foo('',0,0,n)
print(ls)

我自己重新敲了一遍 ,只是改了變數,就報錯了

def bracket(space,left,right,amount):
    if left==amount and right==amount:
        ls.append(space)
    else:
        if left<amount:
            bracket(space+"(",left+1,right,amount)
        if right<open:
            bracket(space+")",left,right+1,amount)
            
n=eval(input())
ls=[]
bracket("",0,0,n)
print(ls)

TypeError: '<' not supported between instances of 'int' and 'builtin_function_or_method'

為什麼為什麼?哪位大神能幫我看看