You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Kotlin编写递归函数将所有'c'字符移动到字符串末尾

问题原因

你的代码存在两个核心问题:

  • 判断条件写错:要移动的目标字符是c,现有代码判断的是字符x,逻辑完全不匹配需求
  • 缺少递归终止条件:当字符串递归处理到空时,调用s[0]会触发下标越界异常,必须补充空串直接返回的终止逻辑
修正后代码
fun toEnd(s: String): String {
    // 递归终止:空串直接返回
    if (s.isEmpty()) return ""
    return if (s[0] == 'c') {
        // 当前字符是c,追加到递归处理结果的末尾
        toEnd(s.substring(1)) + s[0]
    } else {
        // 非c字符,放在递归处理结果的开头
        s[0] + toEnd(s.substring(1))
    }
}
验证效果

输入fffcccfff调用该函数,返回结果为ffffffccc,完全符合需求。

内容的提问来源于stack exchange,提问作者kozimwoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:54:03