求任意多个不重复元素的排列(基于Java实现)

来源:互联网 发布:nosql数据库的优势 编辑:程序博客网 时间:2024/09/21 08:15
public class AllSort {


private static Set<String> charSequence = new LinkedHashSet<String>();

private static List<String> result = new ArrayList<String>();

static {
charSequence.add("A");
charSequence.add("B");
charSequence.add("C");
charSequence.add("D");
charSequence.add("E");
charSequence.add("F");
}


public static void main(String[] args) {
perm(charSequence.size(), "");

for (int i = 0; i <result.size(); i++) {
System.out.println(i+1+":"+result.get(i));
}
}


/**

* @param level还要拼接的次数
*            ,level如果等于0说明字符串拼接完成退出递归
* @param toAppend
*            已经拼接的字符串
*/
public static void perm(int level, String toAppend) {
if (level > 0) {
for (String s : charSequence) {
// 不加if判断为求组合的写法
if (!toAppend.contains(s)) {
perm(level - 1, s + toAppend);
}
}
} else {
result.add(toAppend);
}
}
}
0 0
原创粉丝点击