蓝桥杯求n对括号的有效组合java
Posted ggzx666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯求n对括号的有效组合java相关的知识,希望对你有一定的参考价值。
当n=3时,可能的组合有:(()()), ((())), ()(()), (())(), ()()()
思路:
当n等于1时:()
当n等于2时:()() ,(())
当n等于3时:()()(),()(()),(())(),((()))
这种题目应该采用递推的方法,当n未到目标个数时,每种组合最多可能会产生三种情况
但是可能会产生重复情况!!!
不过我们使用Set集合就可以解决这个问题,因为加入到Set内部的数据是无法重复的。
public static Set<String> Test2(int n)
Set<String> res=new HashSet<>();
res.add("()");
if (n==1)
return res;
for (int i = 0; i < n; i++)
Set<String> res_new=new HashSet<>();
// 每次遍历其中的字符串,然后全部加括号
// 因为需要从一个集合遍历元素,然后加入到另一个,所有需要一个res和一个res_new
for (String e:res)
res_new.add(e+"()");
res_new.add("()"+e);
res_new.add("("+e+")");
res=res_new;
return res;
以上是关于蓝桥杯求n对括号的有效组合java的主要内容,如果未能解决你的问题,请参考以下文章
2021-09-19:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。