Menu
Coddy logo textTech

チャレンジ - 共有備品

CoddyのKotlinジャーニー「ロジックとフロー」セクションの一部。レッスン 63/63。

challenge icon

チャレンジ

上級者

パラメーター requests: List<String>、available: List<String> を受け取る sharedSupplies を完成させてください。各リクエストは、必要な項目をカンマで区切ったリストです。フィールドの前後の空白を削除し、ASCII 名を小文字に変換して、空のフィールドを破棄してください。リクエストに含まれる重複しないすべての必要項目が、同じトリムおよび小文字化の正規化後に available に含まれていれば、そのリクエストは充足可能です。空のリクエストは充足可能です。各リクエストについて index=ready または index=missing:item1,item2 を返してください。不足している名前は重複させず、ソートしてください。インデックスは 0 始まりにします。available は数量ではなく、含まれているかどうかで判定します。

上記でより厳しい上限が指定されていない限り、コレクションは各レベルで最大 100 個の要素を含み、整数の引数および整数コレクションの値は -1000 から 1000 の範囲です。解析対象として与えられるテキストには、説明されているように無効な形式や範囲外の形式が含まれる場合があります。

型 List<String> の値を返してください。提供されている入力および出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは要素数の後に各要素が続く形式で始まり、マップはエントリ数の後に各キーと値が続く形式で始まります。ネストされたリストでは、各行について要素数と要素の形式を繰り返します。提供されている main は、返り値の後に改行を 1 つ出力します。リストには 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プレイグラウンド