文字列のすべての組み合わせを生成しようとしています。最初のパラメータは指定された文字列、2番目のパラメータは文字の数です。だから、combinations("ab",2)
は私にaa, ab, ba, bb
を与えるべきとcombinations("abc",2)
は私の現在のコードは私にaa, ab, bb
を与える最初のケースでは、私にaa, ab, ac, ba, bb, bc, ca, cb, cc
など文字列内での文字の組み合わせの生成が完全に機能しないのはなぜですか?
を与えるべきである(それはba
をスキップ)。 これは私のコードです
public static void combinations(String s, int n)
{
combinations(s,"",n);
}
public static void combinations(String s, String prfx, int n)
{
if(n == 0)
{
System.out.println(prfx);
}
else
{
for(int i = 0; i < s.length(); i++)
{
combinations(s.substring(i), prfx + s.charAt(i), n-1);
}
}
}
私は間違っていますか?あなたが正しい答えを与えてくれるだけでなく、私が再帰をあまりよくしていないので、私はそれから学ぶことができるので、私にいくつかの説明を与えていただければ幸いです。ありがとう。
+1それは私をたくさん助けたとして.... –