5/30/2014

33. Generate Parentheses

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);
    }
}

1 条评论: