Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
这道题是我比较思路不清楚的一道
做完后仍有疑问如果由网友看到希望能为我解答
假如n=3为代码是如何再递归一次得到第一个String “((()))”,后继续递归的?
此时left和right都为0
如何再次调用呢?
class Solution {
public List<String> generateParenthesis(int n) {
List<String> list= new ArrayList<>();
helper(list,"",n,n);
return list;
}
public void helper(List<String> list,String cur,int left, int right){
if(left ==0&&right==0){
list.add(cur);
}
if(left>0){
helper(list,cur+'(',left-1,right);
}
if(right >left){
helper(list,cur+')',left,right-1);
}
}
}```