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

Đề

Đây là phép ngược của bài C7-09 (Nén chuỗi). Một chuỗi nén hợp lệ là dãy gồm một hay nhiều cặp viết liền nhau, mỗi cặp gồm:

  • một số nguyên dương ~\ge 1~ viết bằng chữ số 0–9, không có chữ số 0 đứng đầu (10 hợp lệ; 0, 03, 007 không hợp lệ);
  • ngay sau đó là một chữ cái a–z hoặc A–Z.

Giải nén là thay mỗi cặp bằng chữ cái đó lặp lại đúng số lần ghi trước nó. Nếu chuỗi hợp lệ, in chuỗi giải nén; ngược lại in KHONG HOP LE.

Một số chuỗi không hợp lệ: 3A2 (thừa số 2 ở cuối, không có chữ đi kèm), A3 (chữ A không có số đứng trước), 03A (số có 0 đứng đầu), 3AB (chữ B không có số), 3# (# không phải chữ cái), 3A 2B (có dấu cách).

Dữ liệu vào

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

Kết quả

Một dòng: chuỗi giải nén, hoặc KHONG HOP LE.

Ràng buộc

  • ~1 \le |s| \le 200~; ~s~ gồm ký tự ASCII in được, không bắt đầu và không kết thúc bằng dấu cách.
  • Mỗi dãy chữ số liên tiếp trong ~s~ có giá trị không quá ~200~.
  • Nếu ~s~ hợp lệ thì chuỗi giải nén dài không quá ~200~ ký tự.

Gợi ý

Kiểm tra trước, giải nén sau. Duyệt từng ký tự, gom các chữ số liên tiếp vào một chuỗi so; gặp chữ cái thì so phải khác rỗng và không bắt đầu bằng "0". Hết vòng lặp mà so vẫn còn chữ số là thừa số ở cuối (giống "nhóm cuối" của C7-09).

Ví dụ 1

Dữ liệu vào:

3A12B1C

Kết quả:

AAABBBBBBBBBBBBC

Ví dụ 2

Dữ liệu vào:

3A2

Kết quả:

KHONG HOP LE

Ví dụ 3

Dữ liệu vào:

03A

Kết quả:

KHONG HOP LE

Giải thích ví dụ

  • Ví dụ 1: ba cặp 3A, 12B, 1C cho AAA, mười hai chữ B, một chữ C. Số 12 có hai chữ số.
  • Ví dụ 2: sau cặp 3A còn số 2 mà không có chữ cái đi kèm.
  • Ví dụ 3: số 03 có chữ số 0 đứng đầu.

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


Đang tải...