Shawngbk / Leecode

Questions of Leecode
0 stars 0 forks source link

22. Generate Parentheses #20

Open Shawngbk opened 7 years ago

Shawngbk commented 7 years ago

递归实现,如果左括号还有剩余,则可以放置左括号,如果右括号的剩余数大于左括号,则可以放置右括号。 image

public class Solution { public List generateParenthesis(int n) { ArrayList res = new ArrayList(); generateRes(n, n, "", res); return res; }

private void generateRes(int left, int right, String str, ArrayList<String> res) {
    if(left == 0 && right == 0) {
        res.add(str);
        return;
    }
    if(left > 0) {
        generateRes(left - 1, right, str + '(', res);
    }
    if(right > left) {
        generateRes(left, right - 1, str + ')', res);
    }
}

}

Shawngbk commented 7 years ago