Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
组合算法是一个非常常见的需求。
这里限于时间原因:给出如下实现:
public class demo {
public static void combination(String[] s) {
if (s.length == 0) {
return;
}
int len = s.length;
int n = 1 << len;
// 从1循环到2^len-1
for (int i = 1; i < n; i++) {
StringBuffer sb = new StringBuffer();
// 查看第一层循环里面的任意一种取值当中的哪一位是1[比如ab,011], 如果是1,对应的字符就存在,打印当前组合。
String sum = "";
for (int j = 0; j < len; j++) {
if ((i & (1 << j)) != 0) { // 对应位上为1,则输出对应的字符
String a = s[j];
sum = sum + a+",";
sb.append(s[j]);
}
}
System.out.println("组合:" + sb + " ,sum:" + sum.substring(0, sum.length() - 1));
}
}
public static void main(String[] args) {
String[] a={"a","b","c","d"};
combination(a);
}
}
结果:
剩下的下次写吧
参考资料
官方文档
开源社区
博客文章
书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~