题目:

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3

输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1

输出:["()"]

代码实现:

class Solution {
List<String> ans = new ArrayList<String>();
public void recursion(int level, String str) {

if(level == 0) {
System.out.println(str);
ans.add(str);
return ;
}
recursion(level - 1, str + "(");

recursion(level - 1, str + ")");
}

public List<String> generateParenthesis(int n) {

recursion(2 * n, "");

return ans;
}
}