题解 | #括号生成#
括号生成
https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return string字符串ArrayList
*/
ArrayList<String> result;
public ArrayList<String> generateParenthesis (int n) {
// write code here
result = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
solution(sb, n, n);
return result;
}
public void solution(StringBuilder s, int left, int right) {
if (left == 0 && right == 0) {
result.add(s.toString());
return;
} else {
if (left == right) {
s.append("(");
left--;
solution(s, left, right);
s.deleteCharAt(s.length() - 1);
left++;
} else if (left < right) {
if (left != 0) {
s.append("(");
left--;
solution(s, left, right);
s.deleteCharAt(s.length() - 1);
left++;
}
if (right != 0) {
s.append(")");
right--;
solution(s, left, right);
s.deleteCharAt(s.length() - 1);
right++;
}
}
}
}
}
网易游戏公司福利 566人发布