java - 使用递归查找给定字符串中的最小字符

标签 java recursion

我必须编写一个方法来返回给定字符串中的最小字符(使用 ASCII 序列)。示例 minChar("hello");应返回“e”。

目前我正在尝试运行 minChar("hello", 0)。我的想法是,它将从 h (h < ~) 开始,因此它会设置 c = h,然后调用 minChar("hello", 1),分配 c = e,依此类推,在最终返回 'e' 之前比较字母,因为这是最小值。我错过了什么?

public static char minChar(String x, int z){
    char c = '~';
    while(z < x.length()){
        if(x.charAt(z) < c){
            c = x.charAt(z);
        }
        minChar(x, z+1);
    }
    return c;
}

最佳答案

您没有使用 minChar() 返回的内容。使用它。

public static char minChar(String x, int z){
    char c = '~';
    if(z < x.length()){
        if(x.charAt(z) < c){
            c = x.charAt(z);
        }
        char candidate = minChar(x, z+1); // add assignment
        if (candidate < c) c = candidate; // add update
    }
    return c;
}

关于java - 使用递归查找给定字符串中的最小字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35933257/

相关文章:

c - 这个字符串反向递归是如何工作的?

java - spring-mvc 中 swagger-ui (io.swagger) 的描述中出现了垃圾值 --> ��� ,如何删除它?

java - 将内联元素列表直接反序列化为列表

java - Android ContentResolver.update() 产生重复项

javascript - 扫雷游戏 - 超出最大调用堆栈边

c++ - 如何使用递归缩进行?

ruby - 如何在 Ruby 中编写递归阶乘函数?

java - 递归删除类文件

java - 是否有用于将光标放入 JTextField 的监听器?

java - 无法完成 HttpRequest - 错误 500/403