编程语言:Java
题目链接:https://leetcode-cn.com/problems/generate-parentheses/
题解:也可以使用StringBuilder,记得每次要恢复状态即可,第一个AC是用了StringBuilder的。
难度:Medium
结果:
class Solution {
static List<String> list=new LinkedList<>();
public List<String> generateParenthesis(int n) {
list.clear();
dfs(0, 0, "", n);
return list;
}
private static void dfs(int l, int r, String str, int n) {
if (l == n && r == n) {
list.add(str);
return;
}
if (r < l) {
dfs(l, r + 1, str + ")", n);
}
if (l < n) {
dfs(l + 1, r, str + "(", n);
}
return;
}
}