import java.util.ArrayList;
import java.util.List;
/**
* @author xnl
* @Description:
* @date: 2022/8/1 21:56
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.generateParenthesis(3).toString());
}
public List<String> generateParenthesis(int n) {
List<String> list = new ArrayList<>();
dfs(list, new StringBuilder(), n, 0 , 0);
return list;
}
private void dfs(List<String> list, StringBuilder sb , int max, int open ,int close){
if (sb.length() == max * 2){
list.add(sb.toString());
return;
}
// 先添加左括号
if (open < max){
sb.append("(");
dfs(list, sb, max, open + 1, close);
sb.deleteCharAt(sb.length() - 1);
}
// 添加完之后添加右括号
if (close < open){
sb.append(")");
dfs(list, sb, max, open, close + 1);
sb.deleteCharAt(sb.length() - 1);
}
}
}
力扣:剑指 Offer II 085. 生成匹配的括号
最新推荐文章于 2025-12-02 18:04:47 发布
这段代码展示了如何使用深度优先搜索(DFS)算法生成所有有效的括号组合,给定一个整数n,代表括号对的数量。程序通过添加和删除括号来遍历所有可能的组合,并将它们存储在一个列表中返回。

300

被折叠的 条评论
为什么被折叠?



