【问题标题】:Recursive method to combine a string and its reverse组合字符串及其反向的递归方法
【发布时间】:2021-11-19 01:50:27
【问题描述】:

每个人。我对 java 很陌生,所以我希望我的问题听起来不是很愚蠢,但是我在进行在线练习时遇到了麻烦。

基本上,我需要在java中编写一个递归方法,称为reverse,它接受一个String参数并返回一个与其反向连接的字符串。因此,例如,如果字符串是“Java”,它会将其返回为“JavaavaJ”

我编写了大部分代码,但不知道如何在 return 方法中将两者结合起来。

public static String reverse(String str) {
    if ((null == str) || (str.length() <= 1)) {
        return str;
    }
    return reverse(str.substring(1)) + str.charAt(0);
}

【问题讨论】:

    标签: java string recursion


    【解决方案1】:

    您还需要在要反转的字符串前面加上第一个字符。像这样的东西应该可以工作:

    public String reverse(String str) {
        if (null == str) {
            return null;
        }
        if (str.length() <= 1) {
            return str + str;
        }
        return str.charAt(0) + reverse(str.substring(1)) + str.charAt(0);
    }
    

    如果不添加第一个字符,递归只会产生字符串的反转。同样,当您位于最后一个字符时,也需要将整个字符串附加两次(例如,使用此逻辑反转的“a”似乎应该产生“aa”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-10
      • 2020-08-09
      • 2015-06-25
      • 1970-01-01
      • 2014-02-22
      • 2020-12-21
      • 1970-01-01
      • 2017-03-30
      相关资源
      最近更新 更多