合法括号组合的生成

描述

     给定括号的个数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'



为什么为什么?哪位大神能帮我看看



版权声明:本文为weixin_42634598原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。