C7-06 · Đếm một từ trong câu

Xem dạng PDF

Gửi bài giải

Điểm: 1,00
Giới hạn thời gian: 1.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

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

Đề

Dòng đầu là một câu chỉ gồm chữ cái và dấu cách, dòng hai là một từ ~w~. Đếm số lần ~w~ xuất hiện trong câu như một từ nguyên vẹn, không phân biệt hoa thường.

"Từ nguyên vẹn" nghĩa là cả một từ của câu (đoạn chữ cái giữa các dấu cách) phải bằng ~w~: với ~w~ = an thì An, AN được tính, còn an nằm bên trong Lan, anh, banh thì không tính.

Dữ liệu vào

  • Dòng 1: câu.
  • Dòng 2: từ ~w~ (dòng này có thể có dấu cách thừa ở hai đầu — người gõ vô ý; phần chữ là một từ duy nhất).

Kết quả

Một số nguyên: số lần ~w~ xuất hiện như từ nguyên vẹn.

Ràng buộc

  • Mỗi dòng dài từ ~1~ đến ~200~ ký tự.
  • Dòng 1 chỉ gồm chữ cái a–z, A–Z và dấu cách, có ít nhất một từ; dấu cách có thể thừa ở đầu, cuối, giữa hai từ.
  • Dòng 2 gồm dấu cách (có thể không có) bao quanh đúng một từ chữ cái.

Gợi ý

Làm sạch trước, tính sau (mục 7.9): strip(), lower() ngay khi đọc, rồi so từng từ của split(). count() của chuỗi đếm cả chuỗi con nằm trong từ khác.

Ví dụ 1

Dữ liệu vào:

An va Lan an com roi an tam hoc bai
an

Kết quả:

3

Ví dụ 2

Dữ liệu vào:

  Hoc hoc nua  HOC MAI 
 hoc

Kết quả:

3

Giải thích ví dụ

  • Ví dụ 1: các từ bằng an khi không phân biệt hoa thường là An (đầu câu), an (sau Lan), an (sau roi): 3 lần. Lan chứa an nhưng không phải từ an nên không tính; nếu dùng cau.lower().count("an") sẽ ra 4 — sai.
  • Ví dụ 2: Hoc, hoc, HOC đều là từ hoc: 3 lần. Dòng 2 có một dấu cách trước hoc, phải strip() mới so được.

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


Đang tải...