nathanwailes

LeetCode 22 - Generate Parentheses - NeetCode solution

Oct 30th, 2023
1,020
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. class Solution:
  2.     def generateParenthesis(self, n: int) -> List[str]:
  3.         # only add open parenthesis if open < n
  4.         # only add a closing parenthesis if closed < open
  5.         # valid IIF open == closed == n
  6.  
  7.         stack = []
  8.         res = []
  9.  
  10.         def backtrack(openN, closedN):
  11.             if openN == closedN == n:
  12.                 res.append("".join(stack))
  13.                 return
  14.            
  15.             if openN < n:
  16.                 stack.append("(")
  17.                 backtrack(openN + 1, closedN)
  18.                 stack.pop()
  19.            
  20.             if closedN < openN:
  21.                 stack.append(")")
  22.                 backtrack(openN, closedN + 1)
  23.                 stack.pop()
  24.        
  25.         backtrack(0, 0)
  26.         return res
Advertisement
Add Comment
Please, Sign In to add comment