C7-09 · Nén chuỗi

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-09, mục 7.10, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.

Đề

Cho một chuỗi chữ cái. Thay mỗi nhóm ký tự giống nhau đứng liên tiếp bằng số lần lặp rồi đến ký tự đó (cách nén "run-length"). Nhóm chỉ có một ký tự vẫn ghi số 1. Chữ hoa và chữ thường là hai ký tự khác nhau.

Đừng quên nhóm cuối cùng của chuỗi.

Dữ liệu vào

Một dòng chứa chuỗi ~s~.

Kết quả

Một dòng chứa chuỗi đã nén.

Ràng buộc

  • ~1 \le |s| \le 200~.
  • ~s~ chỉ gồm chữ cái a–z, A–Z.

Gợi ý

Duyệt theo chỉ số (mục 7.2), so s[i] với s[i - 1]: giống thì tăng bộ đếm, khác thì ghép str(dem) + s[i - 1] vào kết quả và đếm lại từ 1. Sau vòng lặp còn một nhóm chưa ghép.

Ví dụ 1

Dữ liệu vào:

AAAABBBCDDDDDDDDDDDD

Kết quả:

4A3B1C12D

Ví dụ 2

Dữ liệu vào:

aAAbbba

Kết quả:

1a2A3b1a

Giải thích ví dụ

  • Ví dụ 1: bốn A, ba B, một C, mười hai D liên tiếp → 4A3B1C12D. Nhóm C một ký tự vẫn ghi 1C; nhóm D là nhóm cuối.
  • Ví dụ 2: a thường và A hoa là hai nhóm khác nhau; chữ a cuối cùng đứng riêng nên thành nhóm 1a mới (không cộng dồn với a đầu chuỗi).

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


Đang tải...