Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution:
- def generateParenthesis(self, n: int) -> List[str]:
- # Invalid:
- # more closing than opening
- # num opening parens greater than n
- valid_parens = []
- def find_valid_parens(curr_str, num_left, num_right):
- # Check invalid
- # If invalid, return to prune subtree
- if num_right > num_left or num_left > n:
- return
- # Check valid
- # If leaf node, add to valid_parens and return
- if num_left == n and num_right == n:
- valid_parens.append(curr_str)
- return
- # Recurse To keep going down tree
- # Add left paren
- find_valid_parens(curr_str + "(", num_left + 1, num_right)
- # Add right paren
- find_valid_parens(curr_str + ")", num_left, num_right + 1)
- find_valid_parens('', 0, 0)
- return valid_parens
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement