1. ホーム

[解決済み】与えられた文字列のすべての並べ換えを生成する

2022-03-24 12:47:29

質問

文字列のすべての並べ換えを見つけるエレガントな方法は何だろう。例えば ba は、次のようになります。 baab のような長い文字列はどうなるのでしょうか? abcdefgh ? Javaでの実装例はありますか?

どのように解決するのですか?

public static void permutation(String str) { 
    permutation("", str); 
}

private static void permutation(String prefix, String str) {
    int n = str.length();
    if (n == 0) System.out.println(prefix);
    else {
        for (int i = 0; i < n; i++)
            permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
    }
}

(経由 Javaによるプログラミング入門 )