dfs问题,非正常的模板,脑子要活。
public class Solution {
public List<String> generateParenthesis(int n) {
List<String> results = new LinkedList<>();
if (n < 1) {
return results;
}
generateParenthesisHelper(results, "", n, n);
return results;
}
private void generateParenthesisHelper(List<String> list, String str, int left, int right) {
if (left == 0 && right == 0) {
list.add(str);
return;
}
if (left > 0) {
generateParenthesisHelper(list, str + "(", left - 1, right);
}
if (right > 0 && right > left) {
generateParenthesisHelper(list, str + ")", left, right - 1);
}
}
}