使用递归打印镜像的单词

时间:2012-04-17 23:10:29

标签: java recursion

我需要编写一个方法,该方法将字符串作为参数并以镜像形式打印该单词。例如,“你好”应该返回“helloolleh”。我必须使用递归,不能使用for循环。到目前为止,这是我的代码:

public static String printMirrored(String str)
{
    if(str == null || str.equals(""))

    {
        return str;
    }
    else
    {
        return str + printMirrored(str.substring(1)) + str.charAt(0);
    }
}

我的输出是“helloellollolooolhh”,其中显然有一些额外的东西。任何指针都将非常感谢!

4 个答案:

答案 0 :(得分:4)

尝试在开头使用str.charAt(0)而不是str

答案 1 :(得分:2)

递归是关于将最其余的委托给递归克隆的最懒惰的人。 所以在“Hello”上,只取“H”,得到“ello”的镜像结果,然后在两端用“H”包围它。

答案 2 :(得分:2)

写得这么快。应该做你想要的,但如果你有任何问题,请告诉我。

String word = "hello";
System.out.println(reverseWord(word, word.length()));

public static String reverseWord(String word, int length) {
    if(length == 0)
        return word;
    else
        return reverseWord(word + word.charAt(length - 1), length - 1);
}

答案 3 :(得分:0)