class Solution {
public:
vector<string> generateParenthesis(int n) {
}
};
面试题 08.09. 括号
括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。
说明:解集不能包含重复的子集。
例如,给出 n = 3,生成结果为:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
原站题解
python3 解法, 执行用时: 48 ms, 内存消耗: 15.2 MB, 提交时间: 2022-08-21 14:09:19
class Solution: def generateParenthesis(self, n: int) -> List[str]: ans = [] def backtrack(S, left, right): if len(S) == 2 * n: ans.append(''.join(S)) return if left < n: S.append('(') backtrack(S, left+1, right) S.pop() if right < left: S.append(')') backtrack(S, left, right+1) S.pop() backtrack([], 0, 0) return ans