22.Generate Parentheses
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:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
public List<String> generateParenthesis(int n) {
ArrayList<String> list=new ArrayList<>();
String s="";
parenthesis(list,s,n,n);
return list;
}
public void parenthesis(ArrayList<String> list,String s,Integer left,Integer right){
if(left==0&&right==0){
list.add(s);
}
if(left>0){
parenthesis(list,s+"(",left-1,right);
}
if(right>0&&left>right){
parenthesis(list,s+")",left,right-1);
}
}