本文共 661 字,大约阅读时间需要 2 分钟。
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为
[ "((()))", "(()())", "(())()", "()(())", "()()()"]
方法1:深搜:
class Solution {public: void dfs(int n, vector&re, string temp, int l, int r){ if(temp.size()==2*n){ re.push_back(temp); return; } if(l generateParenthesis(int n) { vector re; if(n==0) return re; dfs(n, re, "", 0, 0); return re; }};
方法2:迭代
class Solution {public: vectorgenerateParenthesis(int n) { vector re={""}; for(int i=0; i temp; for(int j=0; j
转载地址:http://shabi.baihongyu.com/