Generate Parentheses

MediumStack
Asked byFacebookAmazonMicrosoftAppleAdobeGoogle

Problem

Given n pairs of parentheses, generate all combinations of well-formed (balanced) parentheses strings.

Examples

Example 1
Input:n = 3
Output:["((()))","(()())","(())()","()(())","()()()"]
Example 2
Input:n = 1
Output:["()"]

Constraints

  • 1 <= n <= 8

Solve it in the editor. Sign in free to run your Python or JavaScript against test cases, get a verdict, and track your attempts.

Solve on FeatCode →

How to approach it: the Stack pattern

A stack is last-in-first-out — the most recently added item is the first one removed. It's the natural fit whenever "the most recent unmatched thing" matters, like nested brackets or undo history.

Look for this pattern when

  • You're validating nested or paired structures (parentheses, tags, nested expressions).
  • You need to track "the most recent X that hasn't been resolved yet."
  • You're looking for the next larger or smaller element relative to each position.

Read the full Stack guide →

Video walkthroughs

Original problem on LeetCode ↗

More Stack problems