java编写求集合的全体子集

    xiaoxiao2025-02-03  19

    若求解集合中的全部子集,只需从头开始遍历即可,比如:我们想求集合{A,B,C,D}的全部子集,我们发现它的全部子集可以从头开始遍历{, A, AB, ABC, ABCD, AC, ACD, AD, B, BC, BCD, BD, C, CD, D},当一个链结束后比如ABCD,取出第一个元素A再进行重新开始遍历形成AC。当发现规律后,我们便可以开始编写代码:

    import java.util.ArrayList;

    import java.util.List; public class test6 {         public static List<String> recursionSet(String[] arr) {         List<String> list = new ArrayList<String>();         list.add("");         int i,j,k,n;         n = arr.length;         for(i = 0;i < n;i++){               String s;               s = arr[i];               list.add(s);               for(k = 1;k < n-i;k++){                     for(j = i+k;j < n;j++){                          s += arr[j];                          list.add(s);                          if(j == n-1){                               s = s.substring(0, 1);                          }                     }              }        }        return list;       }       public static void main(String[] args) {                String s = "A B C D";                String[] arr = s.split("\t");                System.out.println(recursionSet(arr));

          }

    }
    转载请注明原文地址: https://ju.6miu.com/read-1296060.html
    最新回复(0)