This question is asked by Facebook. Given an integer N, where N represents the number of pairs of parentheses (i.e. ( and )) you are given, return a list containing all possible well-formed parentheses you can create. code example
Example: Given an integer 'n'. Print all the possible pairs of 'n' balanced parentheses. The output strings should be printed in the sorted order considering '(' has higher value than ')'.
def generateParentheses(openBr, closeBr, n, s = []):
if closeBr == n:
print(''.join(s))
return
if closeBr < openBr:
s.append(')')
generateParentheses(openBr, closeBr+1, n, s)
s.pop()
if openBr < n:
s.append('(')
generateParentheses(openBr+1, closeBr, n, s)
s.pop()
return
n = int(input())
generateParentheses(0, 0, n)