Menu
CoddyTech

Ôn tập: tần suất từ

Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 29 trên 56.

challenge icon

Thử thách

Dễ

Tạo một chương trình đếm tần suất xuất hiện của các từ trong một đoạn văn bản bằng std::map. Chương trình sẽ theo dõi số lần mỗi từ riêng biệt xuất hiện, sau đó báo cáo tần suất của một từ cụ thể.

Chương trình sẽ nhận các đầu vào sau:

  • Một số nguyên n biểu thị số từ trong văn bản
  • Tiếp theo là n chuỗi biểu thị các từ trong văn bản
  • Một chuỗi biểu thị từ cần kiểm tra tần suất

Chương trình cần:

  1. Tạo một std::map<std::string, int> có tên wordCount
  2. Đọc số lượng từ
  3. Với mỗi từ, đọc từ đó và cập nhật số đếm trong từ điển bằng toán tử ngoặc vuông và phép tăng
  4. Đọc từ cần kiểm tra
  5. In tần suất của từ cần kiểm tra theo định dạng bên dưới

Dùng định dạng đầu ra chính xác sau:

The word "[target_word]" appears [frequency] times

Nếu từ cần kiểm tra không tồn tại trong từ điển, truy cập từ đó bằng toán tử ngoặc vuông sẽ tự động tạo một mục với số đếm là 0, vì vậy bạn có thể in tần suất an toàn mà không cần kiểm tra từ đó có tồn tại trước hay không. Dùng wordCount[word]++ để tăng số đếm cho mỗi từ khi đọc từ đó. Thao tác này sẽ tạo mục mới với số đếm là 1 cho từ mới hoặc tăng số đếm hiện có của những từ đã gặp.

Tự làm thử

#include <iostream>
#include <map>
#include <string>
using namespace std;

int main() {
    // Đọc số lượng từ
    int n;
    cin >> n;
    
    // Tạo map để lưu số lần xuất hiện của từng từ
    map<string, int> wordCount;
    
    // TODO: Viết code của bạn ở đây
    // Đọc n từ và cập nhật số lần xuất hiện của chúng trong map
    // Sau đó đọc từ cần tìm và in ra số lần xuất hiện của từ đó
    
    return 0;
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C++ online