Menu
CoddyTech

Selisih Set

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 35 dari 78.

Selisih dua set memuat anggota dari set pertama yang tidak ada di set kedua. Lakukan perulangan pada set pertama dan simpan anggota yang tidak dimiliki set kedua:

var needed := {"rope": true, "torch": true, "map": true}
var packed := {"torch": true, "apple": true}
var missing := {}
for item in needed:
	if not packed.has(item):
		missing[item] = true
print(missing.keys()) # ["rope", "map"]

Urutan set penting. Selisih packed dan needed adalah ["apple"]: hal yang kamu kemas tetapi tidak kamu perlukan.

Kedua perbedaan tersebut bersama-sama membentuk selisih simetris: anggota yang hanya ada di salah satu set. Di sini, anggotanya adalah rope, map, dan apple.

Untuk memeriksa apakah tidak ada yang hilang, has_all() menerima array dan mengembalikan true jika setiap elemennya merupakan kunci dalam dictionary:

print(packed.has_all(needed.keys())) # false: rope dan map tidak ada
challenge icon

Tantangan

Mudah

Sebelum bepergian, kamu membandingkan barang yang kamu butuhkan dengan barang yang kamu kemas. Program membaca dua baris, barang yang dibutuhkan dan barang yang dikemas, dipisahkan oleh spasi, lalu kode awal membuat set needed dan packed.

Cetak dua baris, dengan anggotanya digabungkan menggunakan , :

  • Missing: diikuti barang yang dibutuhkan tetapi tidak dikemas
  • Extra: diikuti barang yang dikemas tetapi tidak dibutuhkan

Pertahankan urutan set yang kamu gunakan dalam perulangan. Cetak none sebagai pengganti list kosong. Untuk input berikut:

rope torch map
torch apple

output-nya adalah:

Missing: rope, map
Extra: apple

Coba sendiri

extends Node

func _ready():
	var needed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		needed[item] = true
	var packed := {}
	for item in OS.read_string_from_stdin().split(" ", false):
		packed[item] = true

	# Buat dua selisihnya

	# Cetak hasilnya
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online