22.括号生成
题目源于题目来源于leetcode
题目
数字 n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
提示:
1 <= n <= 8
解题思路:利用深度优先遍历,采用递归的方法,左括号大于零的时候继续产生左分支;左右括号数都为0时返回。
代码实现
public List<String> generateParenthesis(int n) {
List<String> res=new ArrayList<>();
if(n<=0){
return res;
}
dfs("", n, n, res);
return res;
}
public void dfs(String s,int left,int right,List<String> res){
if(left==0&&right==0){
res.add(s);
return;
}
if(right>left){
return;
}
if(left>0){
dfs(s+")", left-1, right, res);
}
if(right>0){
dfs(s+"(", left, right-1, res);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理