gpt4 book ai didi

java - 在字符串中生成字符组合并不完全有效,为什么?

转载 作者:行者123 更新时间:2023-11-29 06:02:39 25 4
gpt4 key购买 nike

我正在尝试生成字符串中字符的所有组合。所以第一个参数是给定的字符串,第二个参数是字母的个数。所以 combinations("ab",2) 应该给我 aa, ab, ba, bbcombinations("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);

}
}
}

我做错了什么?如果您不仅给我正确答案,还给我一些解释,以便我可以从中学习,我将不胜感激,因为我不太擅长递归。谢谢。

最佳答案

这个有效:

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, prfx + s.charAt(i), n - 1);
}
}
}

关于java - 在字符串中生成字符组合并不完全有效,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9586589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com