public class Solution {
public ArrayList<String> generateParenthesis(int n) {
ArrayList<String> res = new ArrayList<String> ();
if (n==0) return res;
gp(n, 0, 0, "", res);
return res;
}
public void gp(int n, int left, int right, String temp, ArrayList<String> res) {
if (left<right) return;
if (left==n && right==n) {
res.add(temp);
return;
}
if (left==n) {
gp(n, left, right+1, temp+")", res);
return;
}
gp(n, left+1, right, temp+"(", res);
gp(n, left, right+1, temp+")", res);
}
}
recursive
回复删除