蓝桥杯求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 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。

括号生成(Java实现)

swift算法:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

22. 括号生成 Java

22. 括号生成 Java