Menu
CoddyTech

挑战:共享物资

本课属于 Coddy Kotlin 学习旅程的“逻辑与流程”单元。第 63 课,共 63 课。

challenge icon

挑战

专家

补全 sharedSupplies,参数为 requests: List<String>、available: List<String>。每个请求都是以逗号分隔的必需物品列表。去除字段两端的空白,将 ASCII 名称转换为小写,并丢弃空字段。如果某个请求中的所有不同必需物品经过相同的去空白和转小写处理后都出现在 available 中,则该请求可以满足。空请求也可以满足。每个请求返回 index=ready 或 index=missing:item1,item2,缺少的名称不能重复,并且要排序。使用从 0 开始的索引。物品是否可用只看是否存在,不看数量。

除非上文规定了更严格的边界,否则每一层的集合最多包含 100 个元素,整数参数和整数集合中的值范围为 -1000 到 1000。用于解析的文本可能包含无效或超出范围的表示形式,具体如上所述。

返回 List<String> 类型的值。保留提供的输入/输出代码。它每行读取一个标量参数;列表以元素数量开头,后面跟着各个元素;映射以条目数量开头,后面依次跟着每个键和值。嵌套列表的每一行都重复使用数量加元素的格式。提供的 main 会打印返回值,后面跟一个换行符。列表使用 Kotlin 标准的方括号格式,不要打印额外的标签。

亲手试试

fun sharedSupplies(requests: List<String>, available: List<String>): List<String> {
    // 在这里写下你的答案。
    return emptyList()
}
fun main() {
    val requestsCount = readln().toInt()
    val requests = mutableListOf<String>()
    for (i0 in 0 until requestsCount) {
        val requestsItem = readLine().orEmpty()
        requests.add(requestsItem)
    }
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    println(sharedSupplies(requests, available))
}

逻辑与流程中的所有课

自己练习: Kotlin 在线编辑器