Leetcode 22. 괄호 생성
설명
n 쌍의 괄호가 주어지면 잘 구성된 괄호의 모든 조합을 생성하는 함수를 작성하십시오.
예 1:
Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]
예 2:
Input: n = 1
Output: ["()"]
해결책:
// function to return answer and adds the params to the
// recursive backtracking function
function setup(n) {
// answer to return
// recursive backtrack(answer, emptyCombination);
// return answer;
};
function backtrack(ans, curentCombination) {
// if (base case) {
// add curentCombination to answer
//}
// logic for recursive call to add items
// to curentCombination
}
if (cur.length == max * 2) {
ans.push(cur);
return;
}
if (open < max)
backtrack(ans, cur+"(", open+1, close, max)
if (close < open)
backtrack(ans, cur+")", open, close+1, max);
var generateParenthesis = function(n) {
const ans = [];
backtrack(ans, "", 0, 0, n);
return ans;
};
전체 솔루션
var generateParenthesis = function(n) {
const ans = [];
backtrack(ans, "", 0, 0, n);
return ans;
};
function backtrack(ans, cur, open, close, max) {
if (cur.length == max * 2) {
ans.push(cur);
return;
}
if (open < max)
backtrack(ans, cur+"(", open+1, close, max);
if (close < open)
backtrack(ans, cur+")", open, close+1, max);
}
Reference
이 문제에 관하여(Leetcode 22. 괄호 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cod3pineapple/leetcode-22-generate-parentheses-26o0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)