# Number of ways to insert two pairs of parentheses into a string of N characters

• Last Updated : 10 Mar, 2022

Given a string str of length N, the task is to find the number of ways to insert only 2 pairs of parentheses into the given string such that the resultant string is still valid.
Examples:

Input: str = “ab”
Output:
((a))b, ((a)b), ((ab)), (a)(b), (a(b)), a((b))
which are a total of 6 ways.
Input: str = “aab”
Output: 20

Approach: it can be observed that for the lengths of the string 1, 2, 3, …, N a series will be formed as 1, 6, 20, 50, 105, 196, 336, 540, … whose Nth term is (N + 1)2 * ((N + 1)2 – 1) / 12.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to return the number of ways``// to insert the bracket pairs``int` `cntWays(string str, ``int` `n)``{``    ``int` `x = n + 1;``    ``int` `ways = x * x * (x * x - 1) / 12;``    ``return` `ways;``}` `// Driver code``int` `main()``{``    ``string str = ``"ab"``;``    ``int` `n = str.length();` `    ``cout << cntWays(str, n);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``import` `java.util.*;` `class` `GFG``{` `// Function to return the number of ways``// to insert the bracket pairs``static` `int` `cntWays(String str, ``int` `n)``{``    ``int` `x = n + ``1``;``    ``int` `ways = x * x * (x * x - ``1``) / ``12``;``    ``return` `ways;``}` `// Driver code``public` `static` `void` `main(String []args)``{``    ``String str = ``"ab"``;``    ``int` `n = str.length();` `    ``System.out.println(cntWays(str, n));``}``}` `// This code is contributed by Rajput-Ji`

## Python3

 `# Python3 implementation of the approach` `# Function to return the number of ways``# to insert the bracket pairs``def` `cntWays(string, n) :` `    ``x ``=` `n ``+` `1``;``    ``ways ``=` `x ``*` `x ``*` `(x ``*` `x ``-` `1``) ``/``/` `12``;``    ``return` `ways;` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:` `    ``string ``=` `"ab"``;``    ``n ``=` `len``(string);` `    ``print``(cntWays(string, n));` `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach``using` `System;``    ` `class` `GFG``{` `// Function to return the number of ways``// to insert the bracket pairs``static` `int` `cntWays(String str, ``int` `n)``{``    ``int` `x = n + 1;``    ``int` `ways = x * x * (x * x - 1) / 12;``    ``return` `ways;``}` `// Driver code``public` `static` `void` `Main(String []args)``{``    ``String str = ``"ab"``;``    ``int` `n = str.Length;` `    ``Console.WriteLine(cntWays(str, n));``}``}` `// This code is contributed by Rajput-Ji`

## Javascript

 ``

Output:

`6`

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up