LeetCode: Generate Parentheses

LeetCode: Generate Parentheses 1

LeetCode Problem


Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:



This is a classic recursive problem, in each recursive loop, we need to add one char ( or ) to current state, but with two limitations:

The number of ( and ) in the final state should be equal n .

In any state, the number of ) should be less or equal to ( .

So we use these parameters in recursive function:

ll : limit number of (

lr : limit number of )


class Solution {

  void iter(string state, int ll, int lr,  vector<string>& res) {
    if(ll == 0 && lr == 0) {
    if(ll > 0)
      iter(state + "(", ll-1, lr, res);
    if(lr > ll)
      iter(state + ")", ll, lr-1, res);

  vector<string> generateParenthesis(int n) {
    vector<string> res;
    iter("", n, n, res);
    return res;

Preparing for an interview? Check out this!

Don't miss out!
Subscribe To Newsletter

Want to be better at coding and CS ?

Programming tutorials

Career advice and tips


It's Free!

Invalid email address
Last Updated on

Leave a Reply

Your email address will not be published. Required fields are marked *