数字 n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
有效括号组合需满足:左括号必须以正确的顺序闭合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1
输出:["()"]
提示:
1 <= n <= 8
假设序列中全部都是小括号(即只有一类括号),满足这两个条件的括号组合一定是有效的括号组合。
1、任意前缀中,'(' 的数量 大于等于 ')' 的数量。
2、左括号的数量等于右括号的数量。
扩展:只输出括号组合的数量,是有一个公式可以直接求的,卡特兰数。