Menu
Coddy logo textTech

まとめ - ワードカウンター

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 34/66。

challenge icon

チャレンジ

簡単

入力として1つの文章を受け取ります。その文章の中で各単語が何回出現するかをカウントし、そのカウントをハッシュマップに保存してください。その後、各ユニークな単語とそのカウントを出力してください。

要件:

  • std::collections から HashMap をインポートすること
  • HashMap<String, i32> 型のミュータブルなハッシュマップを作成すること
  • 入力された文章を1行として読み取ること
  • .split_whitespace() を使用して、文章を個々の単語に分割すること
  • 各単語について、.entry().or_insert(0) を使用し、単語が存在しない場合はカウントを 0 に初期化すること
  • .or_insert(0) を使用した後、その単語のカウントを 1 増やすこと
  • すべての単語を処理した後、ハッシュマップを反復処理し、各単語とそのカウントを [word]: [count] の形式で出力すること

入力:

  • 単語がスペースで区切られた文章を含む1行(例: hello world hello rust world hello

出力:

  • 各ユニークな単語について、[word]: [count] の形式で1行ずつ出力すること
  • 出力行の順序はテスト実行ごとに異なる場合があります

自分で試してみよう

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

fn main() {
    // 入力された文章を読み込む
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // 単語の出現回数を格納するための可変ハッシュマップを作成する
    let mut word_count: HashMap<String, i32> = HashMap::new();
    
    // TODO: 以下にコードを記述してください
    // 文章を単語に分割し、各単語をカウントする
    
    
    // 各単語とそのカウントを出力する
    
}

Logic & Flowのすべてのレッスン