Practice
JavaScriptData StructuresReactConcepts
Sign in
← Back to problems

Generate Parentheses

Recursion & Backtrackingmedium

Implement `generateParenthesis(n)` returning all combinations of `n` pairs of well-formed parentheses, adding `(` before `)` at each step.

Sample tests

Input: generateParenthesis(3)
Output: ["((()))","(()())","(())()","()(())","()()()"]
Input: generateParenthesis(1)
Output: ["()"]

+ 1 hidden test run on Submit.

Hints

Common pitfalls
  • Closing more than has been opened produces invalid strings.

Learning resources

  • Wikipedia: Backtracking
Approach & explanation (try first)

Constrained backtracking on open/close counts produces all balanced strings.

Loading...
⌘/Ctrl + Enter

Run your code to see results.