Problema
Un pangramma contiene ogni lettera dell'alfabeto inglese almeno una volta. Determina se il testo è un pangramma. Ignora maiuscole/minuscole, spazi, cifre e punteggiatura.
Implementa pangram_check(text).
Input
text: Il testo da analizzare.
Output
Restituisci true se sono presenti tutte le 26 lettere, altrimenti false.
Vincoli
0 ≤ lunghezza di text ≤ 100.000. L'input contiene caratteri ASCII stampabili. Contano solo le lettere A–Z e a–z.
Esempi
Input:
text = "The quick brown fox jumps over the lazy dog."
Output atteso:
expected = True
Input:
std::string text = "The quick brown fox jumps over the lazy dog.";
Output atteso:
bool expected = true;
Input:
string text = "The quick brown fox jumps over the lazy dog.";
Output atteso:
bool expected = true;
Spiegazione
Ogni lettera da a a z compare almeno una volta. La T maiuscola conta come t.
Input:
text = "abcdefghijklmnopqrstuvwxy"
Output atteso:
expected = False
Input:
std::string text = "abcdefghijklmnopqrstuvwxy";
Output atteso:
bool expected = false;
Input:
string text = "abcdefghijklmnopqrstuvwxy";
Output atteso:
bool expected = false;
Spiegazione
Questo testo contiene da a a y, ma manca la z. Una sola lettera mancante rende il risultato false.
Come affrontarlo
Prova prima da solo, poi apri un suggerimento alla volta.
Suggerimento 1
Normalizza il testo così il maiuscolo/minuscolo non conta.
Suggerimento 2
Tieni traccia delle 26 lettere che sono apparse almeno una volta.
Suggerimento 3
Ignora completamente ogni carattere non lettera, inclusi spazi e punteggiatura.
Complessità attesa
tempo O(n), spazio aggiuntivo O(1)
Riferimenti
Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.