递归重复字符串

时间:2014-09-15 16:30:02

标签: java string algorithm recursion repeat

这是作业。我得到了逻辑,但我卡在了代码上。我已经用正常的方式完成了它,需要1周的时间来获取代码。我需要在Java中使用递归方式重复字符串。 这是我的代码:

static String repeatString (final int n, final String[] syllables, final String currentWord) {
    if (n == 0) {
        System.out.println(currentWord);
    } else {
        for (int i = 0; i < syllables.length; i++) {
            repeatString(n - 1, syllables, currentWord + syllables[i]);
        }
    }
    return "";
}

如果我在主要方法中调用

String[] str = {"a", "b"};
    repeatString(1, str, " ");

然后我得到输出(a,b)如果我改为

repeatString(2,str," ");

然后我得到输出(aa,ab,ba,bb)如果我改为

repeatString(3,str," ");

然后我得到输出(aaa,aab,aba,abb,baa,bab,bba,bbb)等等。 所以基本上它就像是2的幂。如果n = 1,我得到2,如果n = 3,我得到8,依此类推。 如果有人能帮助我以递归方式获取此代码,我将不胜感激。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

你在那里的方法已经递归了。递归并不意味着它应该没有for循环。廉价单词中的递归方法意味着该方法会调用自己,这是你自己所做的。