Menu
Coddy logo textTech

部分集合の確認

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

available.containsAll(required) は、required のすべての要素が利用可能かどうかを確認します。required リスト内の重複する要素は、これはメンバーシップの確認であるため、複数のコピーを要求しません。空の required コレクションは常に含まれます。

main内:

val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))

どちらの要件も同じメンバーシップを求めており、それは available です。

containsAllは、利用可能なコピーの数ではなく、メンバーシップを確認します。

challenge icon

チャレンジ

中級

パラメータ available: List<String> と required: List<String> を持つ canCover を完成させてください。すべての required アイテムが available アイテムの中に存在するかどうかを返します。これは数量の問題ではなく、メンバーシップの問題です。

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

型 Boolean の値を返してください。指定された入力/出力コードはそのまま使用してください。スカラー引数は 1 行に 1 つずつ読み取られます。リストは要素数に続いて各要素が並び、マップはエントリ数に続いて各キーと値が並びます。ネストされたリストでは、各行について要素数と要素の形式が繰り返されます。指定された main は、返り値の後に改行を 1 つ出力します。リストには Kotlin 標準の角括弧形式を使用し、追加のラベルは出力しないでください。

自分で試してみよう

fun canCover(available: List<String>, required: List<String>): Boolean {
    // ここに解答を書いてください。
    return false
}
fun main() {
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    val requiredCount = readln().toInt()
    val required = mutableListOf<String>()
    for (i0 in 0 until requiredCount) {
        val requiredItem = readLine().orEmpty()
        required.add(requiredItem)
    }
    println(canCover(available, required))
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Kotlinプレイグラウンド