Open Shawngbk opened 7 years ago
递归实现,如果左括号还有剩余,则可以放置左括号,如果右括号的剩余数大于左括号,则可以放置右括号。
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); } }
}
考
递归实现,如果左括号还有剩余,则可以放置左括号,如果右括号的剩余数大于左括号,则可以放置右括号。![image](https://cloud.githubusercontent.com/assets/18609174/18733411/a6de8496-801f-11e6-9976-ba62ab315bc2.png)
public class Solution { public List generateParenthesis(int n) {
ArrayList res = new ArrayList();
generateRes(n, n, "", res);
return res;
}
}