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

CodeSignal问题:Kotlin代码未校验列表元素合法性的错误修复

修复Kotlin列表元素合法性校验问题

需求回顾

给定字符串列表,需满足以下条件时返回"a"的出现占比:

  • 所有元素只能是"a"或"b"
  • 列表中至少包含一个"a"和一个"b"
    若存在非法元素(如"A"、"c"等),或不满足上述任一条件,返回-1.0。

原代码问题

提供的代码仅检查了列表中是否同时存在"a"和"b",但未校验所有元素是否都是合法的"a"或"b",导致包含非法元素的列表仍可能错误返回占比值。

错误代码:

fun solution(list: MutableList<String>): Double {
  return if ("a" in list && "b" in list) {
    (list.count { it == "a" }.toDouble() / list.size)
  } else {
    -1.0
  }
}

修复方案

新增对所有元素合法性的校验,确保每个元素只能是"a"或"b",再结合原有的"a"和"b"同时存在的判断,最终返回正确结果。

修复后的代码:

fun solution(list: MutableList<String>): Double {
    val allValid = list.all { it == "a" || it == "b" }
    return if (allValid && "a" in list && "b" in list) {
        list.count { it == "a" }.toDouble() / list.size
    } else {
        -1.0
    }
}

测试示例

  • 输入["a","b","a"] → 返回0.6666666666666666
  • 输入["a","b","c"] → 返回-1.0(存在非法元素"c")
  • 输入["a","a"] → 返回-1.0(缺少"b")
  • 输入["b"] → 返回-1.0(缺少"a")
  • 输入["A","b"] → 返回-1.0(存在非法元素"A")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:40:28