回溯演算法-22.括號生成
阿新 • • 發佈:2021-10-29
回溯演算法-22.括號生成
題目
數字 n 代表生成括號的對數,請你設計一個函式,用於能夠生成所有可能的並且 有效的 括號組合。
有效括號組合需滿足:左括號必須以正確的順序閉合。
用例
輸入:n = 3
輸出:["((()))","(()())","(())()","()(())","()()()"]
輸入:n = 1
輸出:["()"]
求解
/** * @param {number} n * @return {string[]} */ var generateParenthesis = function(n) { const res = [] const path = [] bracket_generating(n,n) return res function bracket_generating(left_num,right_num){ if(left_num==0&&right_num==0){ res.push(path.join("")); return } if(left_num==right_num){ path.push("(") bracket_generating(left_num-1,right_num) path.pop() } if(left_num<right_num){ if(left_num!=0){ path.push("(") bracket_generating(left_num-1,right_num) path.pop() } path.push(")") bracket_generating(left_num,right_num-1) path.pop() } } };