Algorithm
class Solution {
public List<String> generateParenthesis(int n) {
List<String> result = new ArrayList<>();
StringBuilder parenthesis = new StringBuilder();
int left = n ;
int right = n ;
buildParenthesis(result, parenthesis, left, right);
return result;
}
private void buildParenthesis(List<String> result, StringBuilder parenthesis, int left, int right) {
if (left > 0) {
buildParenthesis(result, parenthesis.append("("), --left, right);
parenthesis.delete(parenthesis.length() - 1, parenthesis.length());
++left;
}
if (right > 0 && right > left) {
buildParenthesis(result, parenthesis.append(")"), left, --right);
parenthesis.delete(parenthesis.length() - 1, parenthesis.length());
++right;
}
if (right == 0) {
result.add(parenthesis.toString());
return;
}
}
}
Review
Tip
map() 将流的元素映射成另一个类型
collect():对流的汇总操作,比如输出成List集合
近期评论