java - 递归查找字符串中最大的 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) 不知道为什么会发生这种情况,我的代码有什么问题吗?任何帮助表示赞赏。
解决方案
替换character++;
为character = characters[index]
,它将起作用!
并替换index >= characters.length - 1
为index > characters.length - 1
,否则不会检查最后一个字符。
推荐阅读
- python - 在机器人框架pycharm中调试.robot文件
- react-native - 以json格式而不是数组格式发送多选的请求数据
- javascript - Javascript - 如何检查 window.open(url) 是否成功?
- debugging - GDB 单步执行运行时生成的代码
- flutter - Flutter SDK 版本为 0.0.0-未知
- python - 无法安装pypiwin32和win10toast
- powershell - 如何使用 Powershell 将 Set-AdminPowerAppEnvironment RoleAssignments 设置为具有 Dataverse 数据库的环境
- selenium - 如何在 qaf bdd2 中退出驱动程序
- google-apps-script - 使用 contains 和 Cheerogs 抓取 url 值
- linux - 页表条目,当前位?