Torna alle sfide
Facile 0 risolte 0% di accettazione

Frequenza dei caratteri

Conta quante volte appare ciascun carattere.

Cosa imparerai

  • Costruire una tabella di frequenze
  • Aggiornare le voci di un dizionario in sicurezza
  • Restituire i risultati nell'ordine richiesto

Problema

Conta ogni carattere in text tranne gli spazi. Riporta ogni carattere distinto una sola volta come "carattere:conteggio", ordinando per codice carattere (quindi le lettere maiuscole vengono prima delle minuscole).

Implementa character_frequency(text).

Input

text: Il testo da analizzare (caratteri ASCII).

Output

Restituisci la lista delle voci "carattere:conteggio".

Vincoli

0 ≤ lunghezza ≤ 10.000

Esempi

Esempio 1
Input:
text = "hello"

Output atteso:
expected = ["e:1", "h:1", "l:2", "o:1"]
Input:
std::string text = "hello";

Output atteso:
std::vector<std::string> expected = {"e:1", "h:1", "l:2", "o:1"};
Input:
string text = "hello";

Output atteso:
string[] expected = new string[] {"e:1", "h:1", "l:2", "o:1"};

Spiegazione

e:1, h:1, l:2, o:1 ordinati per carattere: ["e:1", "h:1", "l:2", "o:1"].

Esempio 2
Input:
text = "a a A"

Output atteso:
expected = ["A:1", "a:2"]
Input:
std::string text = "a a A";

Output atteso:
std::vector<std::string> expected = {"A:1", "a:2"};
Input:
string text = "a a A";

Output atteso:
string[] expected = new string[] {"A:1", "a:2"};

Spiegazione

Gli spazi vengono ignorati; "A" viene prima di "a": ["A:1", "a:2"].

Come affrontarlo

Prova prima da solo, poi apri un suggerimento alla volta.

Suggerimento 1

Salta gli spazi, ma conta ogni altro carattere ASCII esattamente come appare.

Suggerimento 2

Accumula i conteggi in una tabella di frequenza, poi restituisci ogni carattere una sola volta.

Suggerimento 3

Ordina per codice del carattere, così l'ordine di maiuscole e minuscole segue naturalmente ASCII.

Complessità attesa

tempo O(n + m log m), spazio aggiuntivo O(m)

Riferimenti

Questa sfida è adattata per CodeUtility. Segui la traccia e i vincoli sopra.

Impara dagli altri

Soluzioni della community

Nessuna soluzione pubblicata. Risolvi questa sfida per condividere la prima.