Python easy to understand dfs solution.

  • 4
    def generateParenthesis(self, n):
        res = []
        self.dfs(n, n, "", res)
        return res
    def dfs(self, leftRemain, rightRemain, path, res):
        if leftRemain > rightRemain or leftRemain < 0 or rightRemain < 0:
            return  # backtracking
        if leftRemain == 0 and rightRemain == 0:
        self.dfs(leftRemain-1, rightRemain, path+"(", res)
        self.dfs(leftRemain, rightRemain-1, path+")", res)

Log in to reply

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.