为了账号安全,请及时绑定邮箱和手机立即绑定

带前缀的Java递归ABC生成器

带前缀的Java递归ABC生成器

九州编程 2021-10-06 10:46:45
我有一个递归 ABC 生成器方法。public static void ABCgenerator(String from, int letters) {        if (from.length() == letters) {            System.out.println(from);        } else {            ABCgenerator(from + "a", letters);            ABCgenerator(from + "b", letters);            ABCgenerator(from + "c", letters);        }    }当我使用这些参数运行它时,ABCgenerator("a", 3);它给了我:aaaaabaacabaabbabcacaacbacc相反,我想在运行时获得以下信息ABCgenerator("a", 3);:aaaaaaabaaacaabaaabbaabcaacaaacbaaccabaaabababacabbaabbbabbcabcaabcbabccacaaacabacacacbaacbbacbcaccaaccbaccc问题是我只能更改方法的 body。输入参数的类型和数量必须保持不变,1 String + 1 int。该方法必须保持递归。我怎样才能做到这一点?
查看完整描述

1 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

public static void ABCgenerator(String from, int lettersLeft) {

        lettersLeft--;

        if (lettersLeft + 1 == 0) {

            System.out.println(from);

        } else {

            ABCgenerator(from + "a", lettersLeft);

            ABCgenerator(from + "b", lettersLeft);

            ABCgenerator(from + "c", lettersLeft);

        }

    }

}

这是正确的解决方案。不是每次都计算输入字符串的整个长度,我们只是计算函数仍然需要生成多少个字母,当它达到零时,“最后一个”实例不会调用其他实例,只会打印结果。我想要一些可以生成具有给定长度和固定前缀的字母 abc 的所有组合的东西,就像那样。它给出了示例中提供的所需输出。


查看完整回答
反对 回复 2021-10-06
  • 1 回答
  • 0 关注
  • 194 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信