0Pricing
Competitive Programming Academy · Lezione

Set per appartenenza e deduplicazione

Verificare l’esistenza in tempo costante

Set per appartenenza e deduplicazione è una lezione Competitive Programming Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Competitive Programming Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Competitive Programming Academy include 4 lezioni in totale.

Che cosa offre un set

Un set memorizza elementi unici senza ordine e la sua vera forza consiste nel rispondere alla domanda «è presente?» in tempo pressoché costante. ⚡

Perché non usare semplicemente una list

Verificare l'appartenenza in una list richiede di esaminare ogni elemento, quindi costa O(n). Un set calcola l'hash del valore e passa direttamente al bucket corrispondente.

Crei un set

Lo crei con le parentesi graffe o chiamando set(). Un set vuoto deve usare set(), perché le parentesi graffe semplici creano un dizionario.

seen = set()
vowels = {'a', 'e', 'i', 'o', 'u'}

Il controllo di appartenenza

Usi la parola chiave in per verificare se un valore è presente. Su un set, questa ricerca rapida è ciò che rende la struttura così utile.

if x in seen:
    print('already saw it')

Aggiunga elementi

Inserisca un valore con add. Ripetere lo stesso valore non cambia nulla: il set mantiene silenziosamente tutti gli elementi unici al posto Suo.

seen.add(x)

Deduplicazione istantanea

Passi qualsiasi iterabile a set() e i duplicati scompaiono in un solo passaggio. È il modo più breve per deduplicare un input di gara.

unique = set(nums)

Conti rapidamente i valori distinti

Una richiesta comune è: «quanti valori distinti ci sono?». Inserisca i dati in un set e ne calcoli la lunghezza in una sola riga.

distinct_count = len(set(nums))

Tenga traccia di ciò che ha già visto

Costruisca un set durante il ciclo per individuare la prima ripetizione. Se un valore è già nel set, ha trovato immediatamente un duplicato.

for v in nums:
    if v in seen:
        return True
    seen.add(v)

Operazioni tra set senza sforzo

I set supportano direttamente l'intersezione, l'unione e la differenza. Confrontare due gruppi diventa un solo operatore invece di cicli annidati.

common = a & b
only_a = a - b

Rimuovere e scartare

Utilizzi discard per eliminare in sicurezza anche quando il valore non è presente, mentre remove genera un errore se la chiave manca. Scelga quello che corrisponde al Suo intento.

seen.discard(x)

Solo elementi hashable

I set richiedono elementi hashable, quindi non è possibile inserirvi liste, mentre le tuple sì. Se deve memorizzare una lista, la converta prima in una tupla.

grid_seen = set()
grid_seen.add((row, col))

Verifica rapida

Deve sapere quanti numeri diversi compaiono in una lista.

Riepilogo

Un set offre una verifica di appartenenza in O(1), elimina subito i duplicati e semplifica intersezioni e differenze. Lo utilizzi ogni volta che si chiede «ho già visto questo elemento?». 🚀

Domande Frequenti

La lezione «Set per appartenenza e deduplicazione» è gratuita?

Sì — il testo completo di «Set per appartenenza e deduplicazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Competitive Programming Academy, passa a CoddyKit PRO. Il corso Competitive Programming Academy include 4 lezioni in totale.

Cosa imparerò in «Set per appartenenza e deduplicazione»?

Verificare l’esistenza in tempo costante Eserciti Competitive Programming Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Competitive Programming Academy?

Non è richiesta alcuna esperienza precedente. Competitive Programming Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Set per appartenenza e deduplicazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Competitive Programming Academy?

Sì. Ogni lezione Competitive Programming Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Set per appartenenza e deduplicazione
  2. Dizionari come tabelle di lookup
  3. Counter e defaultdict in pratica
  4. Raggruppare e suddividere in bucket con una map
← Torna a Competitive Programming Academy