【问题标题】:Permutations of a set of strings?一组字符串的排列?
【发布时间】:2015-03-01 05:06:03
【问题描述】:

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

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

我想得到所有的组合。

我尝试使用一种与字符集一起使用的方法来生成所有排列:

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);
    }
}

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

我将如何做到这一点?

【问题讨论】:

  • 所有排列到底是什么意思?您的答案需要如何格式化?您可以在嵌套循环中使用组合字符串的递归函数。
  • 搜索“powerset”...

标签: java permutation


【解决方案1】:

这是一个想法,使用 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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 2011-10-18
    • 2017-12-05
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多