一组字符串的排列?

时间:2015-03-01 05:06:04

标签: java permutation

我有一个字符串数组,例如:

{ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }

我希望获得所有组合。

我尝试使用我用charsets生成所有排列的方法:

public static void generate(String[] stringset, String pfx, int n, int k) {
    if (k == 0) {
        System.out.println(pfx);
        return;
    }
    for (int i = 0; i < n; i++) {
        generate(stringset, pfx + stringset[i] + ",", n, k - 1);
    }
}

但是我无法获得有效的输出。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这是一个想法,使用ArrayList。

public static void generate(ArrayList<String> stringset, String pfx) {
    if (stringset.size() == 0) {
        System.out.println(pfx);
        return;
    }
    int len = stringset.size();

    for (int i = 0; i < len ; i++) {
        String first = stringset.remove(i);
        generate(stringset, pfx + first + ",");
        stringset.add(i,first);
    }
}