括号生成

括号生成

http://www.nowcoder.com/questionTerminal/c9addb265cdf4cdd92c092c655d164ca

递归搜索,尝试增加括号,如果剩余的括号里左括号多于右括号,则不可能完成任务,抛弃结果;
如果没有括号剩下,那么任务完成,把结果temp添加到ans。
注意python没有传参,需要不断对原list对象赋值。
https://www.cnblogs.com/ariel-dreamland/p/9133613.html
python还是太慢了啊……
提交时间 运行结果 运行时间 占用内存 使用语言
8秒前 答案正确 3ms 504KB C++
20秒前 答案正确 37ms 6520KB Python 3

#
# @param n int整型
# @return string字符串一维数组
#
class Solution:
    def generateParenthesis(self, n):
        # write code here
        ans = []
        return recurve(n, n, "", ans)


def recurve(left, right, temp, ans):
    if left > right:
        return ans
    if left == 0 and right == 0:
        ans.append(temp)
    else:
        if left > 0:
            ans = recurve(left-1, right, temp + "(", ans)
        if right > 0:
            ans = recurve(left, right-1, temp + ")", ans)
    return ans
全部评论

相关推荐

评论
4
收藏
分享
牛客网
牛客企业服务