我試圖生成字符串中的所有字符組合。所以第一個參數是給出的字符串,第二個參數是字母數。所以combinations("ab",2)
應該給我aa, ab, ba, bb
和combinations("abc",2)
應該給我aa, ab, ac, ba, bb, bc, ca, cb, cc
等在字符串中生成字符組合並不完全,爲什麼?
在第一種情況下,我當前的代碼給我aa, ab, bb
(所以它跳過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,因爲它幫了我很多.... – 2012-10-17 11:10:08