leetcode hot100 22.括号生成

72 阅读1分钟

题目

image.png

思路:

递归枚举,递归出口为左右括号都使用完,push加入答案,继续递归,使用if条件判断是否能继续递归下去,保证右括号小于左括号个数才能添加右括号。

代码

var generateParenthesis = function (n) {
  let res = [];
  function dfs(str, l, r) {
    if (l == n && r == n) {
      res.push(str)
      return
    }

    if (l < n) dfs(str + '(', l + 1, r)
    if (r < l) dfs(str + ')', l, r + 1)
  }
  dfs('', 0, 0)
  return res
};