题目链接
题目描述
实现代码
思路:每个位置的括号设置就两个选择:左括号和右括号,因此可以通过dfs来针对两种方式进行求解,然后加入一个局部变量,每次对添加的括号进行记录
dfs实现代码:
class Solution {
List<String> result = new ArrayList<>();
public List<String> generateParenthesis(int n) {
dfs(n, n, "");
return result;
}
public void dfs(int remainL, int remainR, String str) {
if (remainL > remainR || remainL < 0 || remainR < 0) {
return;
}
if (remainL == 0 && remainR == 0) {
result.add(str);
return;
}
dfs(remainL - 1, remainR, str + "(");
dfs(remainL, remainR - 1, str + ")");
}
}