package com.vic.string;
import java.util.ArrayList;
import java.util.List;
public class Combination {
private static int count = 0;
static void combination(char[] s){
for(int i=1;i<=s.length;i++){
combination(s,new ArrayList<String>(),0,i);
}
}
private static void combination(char[] s,List<String> comList,int start, int length) {
if(start>=s.length&&length>0)
return;
if(length==0||start>=s.length){
for(String str:comList){
System.out.print(str);
}
System.out.println();
count++;
}else{
List<String> tmpList = new ArrayList<String>(comList);//保留之前的状态
//包含当前字符,剩余字符里选length-1个
comList.add(s[start]+"");
combination(s,comList,start+1,length-1);
//不包含当前字符
combination(s,tmpList,start+1,length);
}
}
public static void main(String[] args) {
char[] s = "abc".toCharArray();
combination(s);
System.out.println(count);
}
}
字符所有组合
最新推荐文章于 2021-03-10 23:16:58 发布