TypeScript算法-22. 括号生成
在TypeScript中实现生成括号组合的算法可以通过深度优先搜索(DFS)来完成。以下是一个简洁的实现:
function generateParenthesis(n: number): string[] {
const result: string[] = [];
const dfs = (current: string, left: number, right: number): void => {
if (left > right) return; // 不平衡,不合法
if (left === 0 && right === 0) {
result.push(current);
return;
}
if (left > 0) dfs(current + '(', left - 1, right);
if (right > 0) dfs(current + ')', left, right - 1);
};
dfs('', n, n);
return result;
}
// 使用示例
console.log(generateParenthesis(3));
这段代码定义了一个generateParenthesis
函数,它接收一个整数n
作为生成括号组合的数量。函数内部定义了一个dfs
递归函数,该递归函数通过深度优先搜索来遍历所有可能的括号组合。当左右括号数量相等且都为0时,表示找到了一个有效的括号组合,将其添加到结果中。最后,调用dfs
函数开始构建括号组合,并打印结果。
评论已关闭