大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
原题链接
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1
输出:["()"]
提示:
1 <= n <= 8
题解
回溯
class Solution {
public:
vector<string>res;
string t = "";
void dfs(int u,int num,int len){
if(u == len && num == len){
res.push_back(t);
return;
}
if(u < len){
t.append(1,'(');
dfs(u + 1,num,len);
t.erase(t.size() - 1,1);
}
if(num < u){
t.append(1,')');
dfs(u,num + 1,len);
t.erase(t.size() - 1,1);
}
}
vector<string> generateParenthesis(int n) {
dfs(0,0,n);
return res;
}
};
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168883.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...