public class Solution {
public ArrayList<String> generateParenthesis(int n) {
// Start typing your Java solution below
// DO NOT write main() function
ArrayList<String> ret = new ArrayList<String>();
char[] chars = new char[2*n];
solve(0,0,0,2*n,chars,ret);return ret; }
}
public void solve(int position,int leftnum,int left,int total,char[] chars,List<String> list){
if(position >= total){
list.add(new String(chars));
return;
}
if(leftnum == 0 && left < total/2){
chars[position] = '(';
solve(position+1,leftnum + 1,++left,total,chars,list);
}else{
if(left >= total/2){
chars[position] = ')';
solve(position+1,leftnum - 1,left,total,chars,list);
}else{
chars[position] = ')';
solve(position+1,leftnum - 1,left,total,chars,list);
chars[position] = '(';
solve(position+1,leftnum + 1,++left,total,chars,list);
}
}
}
Generate Parentheses
最新推荐文章于 2022-05-10 19:05:11 发布