Menu
Coddy logo textTech

Riepilogo - Contatore di parole

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 34 di 66.

challenge icon

Sfida

Facile

Riceverai una frase come input. Conta quante volte compare ogni parola nella frase e memorizza i conteggi in una mappa hash. Poi stampa ogni parola univoca insieme al suo conteggio.

Requisiti:

  • Importa HashMap da std::collections
  • Crea una mappa hash mutabile con i tipi HashMap<String, i32>
  • Leggi la frase di input come un'unica riga
  • Dividi la frase in singole parole usando .split_whitespace()
  • Per ogni parola, usa .entry() con .or_insert(0) per inizializzare il conteggio a 0 se la parola non esiste
  • Dopo aver usato .or_insert(0), incrementa di 1 il conteggio di quella parola
  • Dopo aver elaborato tutte le parole, scorri la mappa hash e stampa ogni parola con il suo conteggio nel formato: [word]: [count]

Input:

  • Un'unica riga contenente una frase con le parole separate da spazi (ad esempio, hello world hello rust world hello)

Output:

  • Una riga per ogni parola univoca nel formato: [word]: [count]
  • L'ordine delle righe di output può variare tra un'esecuzione di test e l'altra

Provalo tu

use std::collections::HashMap;
use std::io;

fn main() {
    // Leggi la frase in input
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Crea una hash map modificabile per memorizzare il conteggio delle parole
    let mut word_count: HashMap<String, i32> = HashMap::new();
    
    // TODO: Scrivi il tuo codice qui sotto
    // Dividi la frase in parole e conta le occorrenze di ciascuna
    
    
    // Stampa ogni parola con il relativo conteggio
    
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online