Menu
CoddyTech

Diferença entre conjuntos

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 35 de 78.

A diferença de dois conjuntos contém os membros do primeiro conjunto que não estão no segundo. Percorra o primeiro conjunto e mantenha o que falta no segundo:

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"]

A ordem dos conjuntos importa. A diferença entre packed e needed é ["apple"]: o que você empacotou, mas não precisou.

As duas diferenças, juntas, formam a diferença simétrica: os elementos que estão em exatamente um dos conjuntos. Aqui, são rope, map e apple.

Para verificar se nada está faltando, has_all() recebe um array e retorna true quando cada elemento dele é uma chave do dicionário:

print(packed.has_all(needed.keys())) # false: rope e map estão faltando
challenge icon

Desafio

Fácil

Antes de uma viagem, você compara o que precisa com o que colocou na mala. O programa lê duas linhas, os itens necessários e os itens colocados na mala, separados por espaços, e o código inicial cria os conjuntos needed e packed.

Imprima duas linhas, com os elementos unidos por , :

  • Missing: seguido dos itens necessários que não foram colocados na mala
  • Extra: seguido dos itens colocados na mala que não são necessários

Mantenha a ordem do conjunto sobre o qual você percorre. Imprima none em vez de uma lista vazia. Para a entrada:

rope torch map
torch apple

a saída é:

Missing: rope, map
Extra: apple

Experimente você mesmo

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

	# Calcule as duas diferenças

	# Imprima os resultados
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online