采用位图求数组或者字符串的子序列

2021-01-02 13:28

阅读:706

标签:private   ++   csharp   abc   位图   组合   int   app   rgs   

/**
 * //采用位图求一个数组的子集
 * //采用位图求一个字符串的所有子序列
 */
public class Test3 {
    public static void main(String[] args) {
//        allSub();
          allSub("abc");
    }

    private static void allSub() {
        //[] [1] [2] [3] [1,2] [1,3] [2,3] [1,2,3]
        int [] arr = {1,2,3};
        List> allList = new ArrayList>();
        int len = arr.length;
        //mask表示的就是所有的可能组合,整数是0到7,用二进制表示就是000 001 010 011 100 101 110 111
        for(int mask = 0; mask  aList = new ArrayList();
            //内层循环表示的作用是选出原数组和(比如001)相&后的元素
            for(int i = 0; i  list : allList){
            for (Integer i : list){
                System.out.print(i + " ");
            }
            System.out.println();
        }
    }

    private static void allSub(String str) {
        //[] [1] [2] [3] [1,2] [1,3] [2,3] [1,2,3]
        char [] arr = str.toCharArray();
        List allList = new ArrayList();
        int len = arr.length;
        //mask表示的就是所有的可能组合,整数是0到7,用二进制表示就是000 001 010 011 100 101 110 111
        for(int mask = 0; mask 

  

采用位图求数组或者字符串的子序列

标签:private   ++   csharp   abc   位图   组合   int   app   rgs   

原文地址:https://www.cnblogs.com/moris5013/p/12994351.html


评论


亲,登录后才可以留言!