首页 > 解决方案 > 递归查找字符串中最大的 ASCII 字符 - java

问题描述

我正在尝试编写一个方法,该方法根据 ASCII 返回字符串中的最大字符(如果字符在 ASCII 表中稍后出现,则该字符更大)。这是我目前所拥有的

public char maxChar (String s) {
    char[] characters = s.toCharArray();
    char character = characters[0];
    return maxCharHelper(characters, character, 0);
}

private static char maxCharHelper(char[] characters, char character, int index) {
    if (index >= characters.length - 1) {
        return character;
    }
    if (characters[index] > character) {
        character++;
    }
    return maxCharHelper(characters, character, ++index);
}

我收到三个问题,它们是:1)当使用字符串时"helloWORLD",它返回 107(k)而不是 111(o)2)当使用字符串时"helloworld",它最后返回 110(n)而不是 119(w),3)当字符串"abbxL ? 12 x5y @"是使用它返回 101(e) 而不是 121(y) 不知道为什么会发生这种情况,我的代码有什么问题吗?任何帮助表示赞赏。

标签: javastringrecursion

解决方案


替换character++;character = characters[index],它将起作用!

并替换index >= characters.length - 1index > characters.length - 1,否则不会检查最后一个字符。


推荐阅读