generateParenthesis.js

    0

    0

    This code uses a recursion algorithm - dfs - to create a list of parentheses. The algorithm works as follows:

    First, it checks to see if left and right are equal - if they are, then the parentheses are created and the string "(" is appended to the result.

    Next, it checks to see if left is greater than 0 - this is done because the parentheses will be created at the leftmost and rightmost positions, depending on the value of left .

    If left is greater than 0, then dfs() is called with left - 1 as the first parameter, right as the second parameter, and the string "(" is appended to the result.

    If right is greater than left, then dfs() is called with left, right - 1 as the first parameter, and the string ")")" is appended to the result.

    const generateParenthesis = (n) => {
        const result = [];
        const dfs = (left, right, str) => {
          if (left === 0 && right === 0) {
            result.push(str);
            return;
          }
          if (left > 0) {
            dfs(left - 1, right, str + "(");
          }
          if (right > left) {
            dfs(left, right - 1, str + ")");
          }
        };
        dfs(n, n, "");
        return result;
      };
    
    Codiga Logo
    Codiga Hub
    • Rulesets
    • Playground
    • Snippets
    • Cookbooks
    soc-2 icon

    We are SOC-2 Compliance Certified

    G2 high performer medal

    Codiga – All rights reserved 2022.