Skip to content

Instantly share code, notes, and snippets.

@eliykat
Created April 20, 2020 01:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eliykat/f1cb87ccc0e74aaa66feba9e493ac0a6 to your computer and use it in GitHub Desktop.
Save eliykat/f1cb87ccc0e74aaa66feba9e493ac0a6 to your computer and use it in GitHub Desktop.
Cassidoo 13/4 - generateParens
# Entry function
def generateParens(n):
return parensTree("", n, n)
# Recursive function
def parensTree(parens, openParens, closeParens):
# Left branch recursion
if openParens:
leftBranch = parensTree(parens + "(", openParens - 1, closeParens)
else:
leftBranch = []
# Right branch recursion
if closeParens and openParens == closeParens:
rightBranch = []
elif closeParens:
rightBranch = parensTree(parens + ")", openParens, closeParens - 1)
else:
rightBranch = [parens]
return leftBranch + rightBranch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment