Menu
Coddy logo textTech

Recapitulação - Contador de Palavras

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 34 de 66.

challenge icon

Desafio

Fácil

Você receberá uma frase como entrada. Conte quantas vezes cada palavra aparece na frase e armazene as contagens em um hash map. Em seguida, imprima cada palavra única junto com sua contagem.

Requisitos:

  • Importe HashMap de std::collections
  • Crie um hash map mutável com os tipos HashMap<String, i32>
  • Leia a frase de entrada como uma única linha
  • Divida a frase em palavras individuais usando .split_whitespace()
  • Para cada palavra, use .entry() com .or_insert(0) para inicializar a contagem em 0 caso a palavra não exista
  • Após usar .or_insert(0), incremente a contagem em 1 para aquela palavra
  • Após processar todas as palavras, itere sobre o hash map e imprima cada palavra com sua contagem no formato: [word]: [count]

Entrada:

  • Uma única linha contendo uma frase com palavras separadas por espaços (ex: hello world hello rust world hello)

Saída:

  • Uma linha para cada palavra única no formato: [word]: [count]
  • A ordem das linhas de saída pode variar entre as execuções de teste

Experimente você mesmo

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

fn main() {
    // Ler a frase de entrada
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Criar um hash map mutável para armazenar a contagem de palavras
    let mut word_count: HashMap<String, i32> = HashMap::new();
    
    // TODO: Escreva seu código abaixo
    // Dividir a frase em palavras e contar cada palavra
    
    
    // Imprimir cada palavra com sua contagem
    
}

Todas as lições de Logic & Flow