leetcode22. 括号生成
【摘要】 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
简单搜索回溯
class Solu...
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
简单搜索回溯
-
class Solution {
-
List<String> ans = new ArrayList();
-
public List<String> generateParenthesis(int n) {
-
backtrack("", 0, 0, n);
-
return ans;
-
}
-
-
public void backtrack(String cur, int open, int close, int max){
-
if (cur.length() == max * 2) {
-
ans.add(cur);
-
return;
-
}
-
if (open < max) backtrack(cur+"(", open+1, close, max);
-
if (close < open) backtrack(cur+")", open, close+1, max);
-
}
-
}
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/104367692
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)