**Objective:** **– **Given “n”, generate all valid parenthesis strings of length “2n”.

**Example**:

Given n=2
Output:
(())
()()

**Approach:**

- Recursion is the key here.
- Divide the N into N/2 and N/2 (Count for open and closed parentheses ).
- Select the
*open* parentheses, add it to the result string and reduce its count and make a recursive call.
- Select the
*close* parentheses, add it to the result string and reduce its count and make a recursive call.
- To print only valid parentheses, make sure at any given point of time, close parentheses count is not less that open parentheses count because it means close parentheses has been printed with its respective open parentheses.
- See picture for better explanation.

**Code:**

Output:

(())
()()

__________________________________________________

**Top Companies Interview Questions..-**

If you find anything incorrect or you feel that there is any better approach to solve the above problem, please write comment.

__________________________________________________

### Like this:

Like Loading...

*Related*

Pingback: Algorithms on Parenthesis. Catalan Numbers. | abgoswam's tech blog()