Menu
Coddy logo textTech

Podsumowanie – licznik słów

Część sekcji Logika i przepływ programu ścieżki Rust w Coddy. Lekcja 34 z 66.

challenge icon

Wyzwanie

Łatwy

Otrzymasz zdanie jako dane wejściowe. Policz, ile razy każde słowo występuje w zdaniu, i zapisz liczby wystąpień w mapie hashującej. Następnie wypisz każde unikalne słowo wraz z liczbą jego wystąpień.

Wymagania:

  • Zaimportuj HashMap z std::collections
  • Utwórz mutowalną mapę hashującą o typie HashMap<String, i32>
  • Odczytaj zdanie wejściowe jako pojedynczy wiersz
  • Podziel zdanie na pojedyncze słowa za pomocą .split_whitespace()
  • Dla każdego słowa użyj .entry() wraz z .or_insert(0), aby zainicjować licznik wartością 0, jeśli słowo nie istnieje
  • Po użyciu .or_insert(0) zwiększ licznik tego słowa o 1
  • Po przetworzeniu wszystkich słów przeiteruj po mapie hashującej i wypisz każde słowo wraz z liczbą jego wystąpień w formacie: [word]: [count]

Dane wejściowe:

  • Pojedynczy wiersz zawierający zdanie, w którym słowa są oddzielone spacjami (np. hello world hello rust world hello)

Wynik:

  • Jeden wiersz dla każdego unikalnego słowa w formacie: [word]: [count]
  • Kolejność wierszy wyjściowych może się różnić między uruchomieniami testów

Spróbuj swoich sił

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

fn main() {
    // Wczytaj zdanie wejściowe
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Utwórz modyfikowalną mapę mieszającą do przechowywania liczby wystąpień słów
    let mut word_count: HashMap<String, i32> = HashMap::new();
    
    // TODO: Napisz swój kod poniżej
    // Podziel zdanie na słowa i policz wystąpienia każdego z nich
    
    
    // Wypisz każde słowo wraz z liczbą jego wystąpień
    
}

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Rust online