1. Code
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
def dfs(s, bal):
if len(s) == 2*n: # when s is completed
return result.append(s)
else:
if bal == 0:
dfs(s+"(", bal+1 )
else :
if s.count("(") < n:
dfs(s+"(",bal+1)
dfs(s+")",bal-1)
result = []
dfs("(",1)
return result
2. Result
Runtime : 28 ms(96.03%), Memory usage : 14.6 MB(69.40%)
(Runtime can be different by a system even if it is a same code.)