C8-04 · Đếm từ

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Sách "Lập trình cơ sở với Python"
Dạng bài
Ngôn ngữ cho phép
Python

Đề

Cho một câu tiếng Việt không dấu. Không phân biệt chữ hoa, chữ thường (Hoc, HOC, hoc là cùng một từ). Hãy đưa câu về chữ thường rồi in mỗi từ và số lần nó xuất hiện, theo thứ tự xuất hiện lần đầu của từ trong câu.

Dữ liệu vào

Một dòng chứa câu, chỉ gồm chữ cái tiếng Anh (A–Z, a–z) và dấu cách. Giữa hai từ có thể có nhiều dấu cách; đầu và cuối dòng cũng có thể có dấu cách.

Kết quả

Mỗi từ khác nhau một dòng: từ (viết thường) và số lần xuất hiện, cách nhau một dấu cách.

Ràng buộc

  • Dòng dài không quá ~2 \cdot 10^5~ ký tự và có ít nhất một từ.

Ví dụ

Dữ liệu vào:

Hoc nua hoc mai Hoc

Kết quả:

hoc 3
nua 1
mai 1

Giải thích ví dụ

Đưa về chữ thường được hoc nua hoc mai hoc. Từ hoc xuất hiện 3 lần (vị trí 1, 3, 5), nua và mai mỗi từ một lần. Thứ tự in là thứ tự gặp lần đầu: hoc (vị trí 1), nua (vị trí 2), mai (vị trí 4) — không sắp theo bảng chữ cái.

Lưu ý

  • Tách từ bằng split() không tham số: nó bỏ mọi dấu cách thừa. split(" ") sinh ra "từ rỗng" khi có hai dấu cách liền nhau.
  • Phải đưa về chữ thường trước khi đếm, không phải lúc in.
  • Câu có thể có tới hàng chục nghìn từ khác nhau: dùng dict để đếm (mục 8.2); đếm bằng list.count() cho từng từ sẽ quá chậm.

Nguồn: Bài C8-04, mục 8.9, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.

Nguồn trong sách: bài tập C8-04 (mục 8.9) · Mức: (**)


Đang tải...