{"id":2079,"date":"2020-07-29T08:32:19","date_gmt":"2020-07-29T08:32:19","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=2079"},"modified":"2022-03-28T00:55:07","modified_gmt":"2022-03-28T00:55:07","slug":"balanced-parenthesis-count","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/","title":{"rendered":"BALANCED PARENTHESIS COUNT"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Recursion and Backtracking.<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Medium.<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT(SIMPLIFIED):<\/h3>\n<blockquote>\n<p>Rohan is now fond of balanced sequences, but suddenly he realized that he is in love with balanced parenthesis. Now he wants to know the number of the balanced parenthesis of length N. Help Rohan find the count.<\/p>\n<\/blockquote>\n<h4>For Example :<\/h4>\n<pre><code>N = 4;\nThe balanced parenthesis sequence of length 4 are: (()), ()()\n\nN=6;\nThe balanced parenthesis sequence of length 4 are: ((())), ()()(),()(()),(())(),(()()).<\/code><\/pre>\n<h3>SOLVING APPROACH:<\/h3>\n<p><strong>BRUTE FORCE:<\/strong><\/p>\n<pre><code>Generate all (2 ^ (n)) possible parenthese strings and then validate each for being balanced.\n\nIf n = 4 then the string length will be 2 times that since all open parentheses are matched by closed parentheses.\n\nThis lower bounds our time complexity.\n\nEven if we restrict the enumeration to just sets with an equal number of left and right parentheses we will have choose(k, k\/2) strings to consider for validation.<\/code><\/pre>\n<p><strong>OPTIMIZATION:<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes.com\/blog\/wp-content\/uploads\/2020\/06\/balanced-paranthesis.png\" alt=\"\" \/><\/p>\n<p>You are encouraged to implement the above brute force  on your own first ,before looking at the solution.<br \/>\n<a href=\"https:\/\/mycode.prepbytes.com\/problems\/dynamic-programming\/BALPAL\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<blockquote>\n<p>First, observe the recursion tree shown in the figure closely.Can you observe the key to this problem?<br \/>\nThe <strong>Key<\/strong> is:<\/p>\n<p>At each point of constructing the string of length k we make a choice.<br \/>\nWe can place a &quot;(&quot; and recurse or we can place a &quot;)&quot; and recurse.<br \/>\nBut we can&#8217;t just do that placement, we need 2 critical pieces of information.<br \/>\nThe amount of left parens left to place.<br \/>\nThe amount of right parens left to place.<br \/>\nWe have 2 critical rules at each placement step.<br \/>\nWe can place a left parentheses if we have more than 0 left to place.<br \/>\nWe can only place a right parentheses if there are left parentheses that we can match against.<br \/>\nWe know this is the case when we have less left parentheses to place than right parentheses to place.<br \/>\nOnce we establish these constraints on our branching we know that when we have 0 of both parens to place that we are done, we have an answer in our base case.<\/p>\n<\/blockquote>\n<p><strong>ALGORITHM:<\/strong><\/p>\n<blockquote>\n<p>1.Recursion is the key here.<\/p>\n<p>2.Divide the N into N\/2 and N\/2 (Count for open and closed parentheses ).<\/p>\n<p>3.Select the open parentheses, add it to the result string and reduce its count and make a recursive call.<\/p>\n<p>4.Select the close parentheses, add it to the result string and reduce its count and make a recursive call.<\/p>\n<p>5 .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.<\/p>\n<\/blockquote>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_2086 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_2086 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_2086 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_2086 .wpsm_nav-tabs > li.active > a, #tab_container_2086 .wpsm_nav-tabs > li.active > a:hover, #tab_container_2086 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_2086 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_2086 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_2086 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_2086 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_2086 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_2086 .wpsm_nav-tabs > li > a:hover , #tab_container_2086 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_2086 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_2086 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_2086 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_2086 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_2086 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_2086 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_2086 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2086 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_2086 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_2086 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_2086 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_2086\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_2086\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2086_1\" aria-controls=\"tabs_desc_2086_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2086_2\" aria-controls=\"tabs_desc_2086_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2086_3\" aria-controls=\"tabs_desc_2086_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_2086_4\" aria-controls=\"tabs_desc_2086_4\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Python<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_2086\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_2086_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;stdio.h&gt;\r\n    long long int dp[100][100];\r\n     long long int find(int i,int j)\r\n    {\r\n    if(i&lt;0||j&lt;0)return 0;\r\n    if(i==0&amp;&amp;j==0)\r\n    {\r\n        dp[0][0]=1;\r\n        return 1;\r\n    }\r\n    if(dp[i][j])\r\n    return dp[i][j];\r\n    long long int s=0;\r\n    if(i&gt;j)\r\n    return 0;\r\n    if(i&gt;0)\r\n    s+=find(i-1,j);\r\n    if(j&gt;0)\r\n    s+=find(i,j-1);\r\n    dp[i][j]=s;\r\n    return s;\r\n    }\r\n\r\n\r\n     int main()\r\n    {  \r\n\r\n\r\n     int t;\r\n    scanf(&quot;%d&quot;,&amp;t);\r\n     while(t--)\r\n    {\r\n    int n;\r\n    scanf(&quot;%d&quot;,&amp;n);\r\n    if(n%2==0)\r\n    {\r\n        printf(&quot;%lld&#92;n&quot;,find(n\/2,n\/2));\r\n    }\r\n    else\r\n    {\r\n        printf(&quot;0&#92;n&quot;);\r\n    }\r\n\r\n    } \r\n    return 0;\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\r\n\r\n\r\n\r\n\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2086_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;bits\/stdc++.h&gt;\r\n    using namespace std;\r\n    long long int dp[100][100];\r\n    long long int find(int i,int j)\r\n    {\r\n    if(i&lt;0||j&lt;0)return 0;\r\n    if(i==0&amp;&amp;j==0)\r\n    {\r\n        dp[0][0]=1;\r\n        return 1;\r\n    }\r\n    if(dp[i][j])\r\n    return dp[i][j];\r\n    long long int s=0;\r\n    if(i&lt;j)\r\n    s+=find(i,j-1);\r\n    if(i&gt;0)\r\n    s+=find(i-1,j);\r\n    dp[i][j]=s;\r\n    return s;\r\n    }\r\n\r\n\r\n     int main()\r\n    {  \r\n\r\n\r\n    int t;\r\n    cin&gt;&gt;t;\r\n     while(t--)\r\n    {\r\n    int n;\r\n    cin&gt;&gt;n;\r\n    if(n%2==0)\r\n    {\r\n        cout&lt;&lt;find(n\/2,n\/2)&lt;&lt;endl;\r\n    }\r\n    else\r\n    {\r\n        cout&lt;&lt;0&lt;&lt;endl;\r\n    }\r\n\r\n    } \r\n     return 0;\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2086_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\n    import java.io.*;\r\n    class balpal { \r\n    static long binomialCoeff(int n, int k) \r\n    { \r\n        long res = 1; \r\n        if (k &gt; n - k) \r\n            k = n - k; \r\n        for (int i = 0; i &lt; k; ++i) { \r\n            res *= (n - i); \r\n            res \/= (i + 1); \r\n        } \r\n\r\n        return res; \r\n    } \r\n    static long catalan(int n) \r\n    { \r\n        long c = binomialCoeff(2 * n, n); \r\n        return c \/ (n + 1); \r\n    } \r\n    static long findWays(int n) \r\n    { \r\n        if ((n &amp; 1) != 0) \r\n            return 0; \r\n        return catalan(n \/ 2); \r\n    } \r\n    public static void main(String[] args) \r\n    { \r\n       Scanner sc = new Scanner(System.in);\r\n        int t= sc.nextInt();\r\n        while(t-- &gt;0 ){\r\n            int n = sc.nextInt();\r\n        System.out.println(findWays(n));} \r\n    } \r\n    } \r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_2086_4\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"Python\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"Python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\ndp = [[0 for i in range(100)] for j in range(100)]\r\n\r\ndef find(i, j):\r\n\t\r\n\tif i &lt; 0 or j &lt; 0:\r\n\t\treturn 0\r\n\t\r\n\tif i == 0 and j == 0:\r\n\t\tdp[0][0] = 1\r\n\t\treturn 1\r\n\t\r\n\tif dp[i][j]:\r\n\t\treturn dp[i][j]\r\n\ts = 0\r\n\t\r\n\tif i &lt; j:\r\n\t\ts += find(i, j - 1)\r\n\r\n\tif i &gt; 0:\r\n\t\ts += find(i - 1, j)\r\n\r\n\tdp[i][j] = s\r\n\r\n\treturn s\r\n\r\nfor _ in range(int(input())):\r\n\t\r\n\tn = int(input())\r\n\t\r\n\tif n % 2 == 0:\r\n\t\tprint(find(n \/\/ 2, n \/\/ 2))\r\n\r\n\telse:\r\n\t\tprint(0)\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_2086 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_2086 a\"),jQuery(\"#tab-content_2086\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n<strong>Space complexity<\/strong>: O(N*N)<\/p>\n<p>[forminator_quiz id=&quot;2087&quot;]<\/p>\n<p>This article tried to discuss <strong>Recursion and Backtracking<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Recursion and Backtracking you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Recursion and Backtracking. DIFFICULTY LEVEL: Medium. PROBLEM STATEMENT(SIMPLIFIED): Rohan is now fond of balanced sequences, but suddenly he realized that he is in love with balanced parenthesis. Now he wants to know the number of the balanced parenthesis of length N. Help Rohan find the count. For Example : N = 4; The [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[116],"tags":[],"class_list":["post-2079","post","type-post","status-publish","format-standard","hentry","category-backtracking-interview-questions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes<\/title>\n<meta name=\"description\" content=\"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-29T08:32:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-28T00:55:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"BALANCED PARENTHESIS COUNT\",\"datePublished\":\"2020-07-29T08:32:19+00:00\",\"dateModified\":\"2022-03-28T00:55:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\"},\"wordCount\":385,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\",\"articleSection\":[\"Backtracking Interview Questions\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\",\"name\":\"Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\",\"datePublished\":\"2020-07-29T08:32:19+00:00\",\"dateModified\":\"2022-03-28T00:55:07+00:00\",\"description\":\"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backtracking Interview Questions\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/backtracking-interview-questions\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"BALANCED PARENTHESIS COUNT\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes","description":"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/","og_locale":"en_US","og_type":"article","og_title":"Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes","og_description":"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call","og_url":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-07-29T08:32:19+00:00","article_modified_time":"2022-03-28T00:55:07+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"BALANCED PARENTHESIS COUNT","datePublished":"2020-07-29T08:32:19+00:00","dateModified":"2022-03-28T00:55:07+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/"},"wordCount":385,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png","articleSection":["Backtracking Interview Questions"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/","url":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/","name":"Backtracking Interview Questions | Balanced Parenthesis Count | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png","datePublished":"2020-07-29T08:32:19+00:00","dateModified":"2022-03-28T00:55:07+00:00","description":"Recursion Is the Key Here, Divide the N Into N\/2 and N\/2 , Select the Open Parentheses, Add it to the Result String and Reduce Its Count and Make a Recursive Call","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645096013261-Article_262.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/balanced-parenthesis-count\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Backtracking Interview Questions","item":"https:\/\/prepbytes.com\/blog\/category\/backtracking-interview-questions\/"},{"@type":"ListItem","position":3,"name":"BALANCED PARENTHESIS COUNT"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=2079"}],"version-history":[{"count":6,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2079\/revisions"}],"predecessor-version":[{"id":8258,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/2079\/revisions\/8258"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=2079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=2079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=2079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}