题目链接
题目描述
实现代码
思路:每个位置的括号设置就两个选择:左括号和右括号,因此可以通过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 + ")");}}
