标签:int NC26 ArrayList global 生成 括号 len1 str
描述
给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。
例如,给出n=3,解集为:
"((()))", "(()())", "(())()", "()()()", "()(())"
题目详解:对题目规则的归纳很重要,首先,左括号的数量要始终大于等于右括号的数量。
两括号的数量要小于题目所给值。
public class Solution {
/**
*
* @param n int整型
* @return string字符串ArrayList
*/
ArrayList<String> list=new ArrayList();
int n_global;
public ArrayList<String> generateParenthesis (int n) {
// write code here
n_global=n;
String str="";
dfs(str,0,0);
return list;
}
public void dfs(String str,int len1,int len2)
{
if(len1==n_global&&len2==n_global)
{
list.add(str);
return;
}
if(len1<n_global)
{
dfs(str+"(",len1+1,len2);
}
if(len2<len1&&len2<n_global)
{
dfs(str+")",len1,len2+1);
}
}
}
标签:int,NC26,ArrayList,global,生成,括号,len1,str 来源: https://blog.csdn.net/weixin_57769964/article/details/122777832
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。