经典指数          
原因
1835
浏览数
0
收藏数
 

已知数组如X=[1,2,3,4],输出其所有子集,如1,2,3,4,12,23,34,123,234,1234…

     举报   纠错  
 
切换
1 个答案

public class AllSubSet {

public static void main(String[] args) {

String[] str = { "1", "2",

"3", "4" };

int len = str.length;

int max = 1 << len;// 16种情况,分别使用 0000——1111表示

List list = new ArrayList();

for (int i = 0; i < max; i++) {

String binaryString = Integer.toBinaryString(i);

switch (binaryString.length()) {

case 1:

binaryString = "000" + binaryString;

break;

case 2:

binaryString = "00" + binaryString;

break;

case 3:

binaryString = "0" + binaryString;

break;

default:

break;

}

list.add(binaryString);

}

for (String string : list) {

StringBuilder builder = new StringBuilder();

for (int j = 0; j < string.length(); j++) {

if (string.charAt(j) == '1') {

builder.append(str[j]);

}

}

System.out.println(builder.toString());

}

// List list = allSubsets(str);

// for (StringBuffer sb : list) {

// System.out.println(sb.toString());

// }

}

 
切换
撰写答案