您的位置:首页 > 其它

字符所有组合

2014-11-09 21:22 183 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  组合