树的遍历,注意左括号和右括号的添加条件即可。
# 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。#### 示例:## 输入:n = 3# 输出:[# "((()))",# "(()())",# "(())()",# "()(())",# "()()()"# ]## Related Topics 字符串 回溯算法# 👍 1505 👎 0# leetcode submit region begin(Prohibit modification and deletion)class Solution(object):def generateParenthesis(self, n):""":type n: int:rtype: List[str]"""res = []def dfs(lLeft, rLeft, str):if len(str) == 2 * n:res.append(str)returnif lLeft > 0:dfs(lLeft - 1, rLeft, str + "(")if lLeft < rLeft:dfs(lLeft, rLeft - 1, str + ")")dfs(n, n, "")return res# leetcode submit region end(Prohibit modification and deletion)print(Solution().generateParenthesis(3))
