Đề 18 - A. Nén xâu ký tự


Submit solution

Points: 50
Time limit: 1.0s
Memory limit: 256M

Problem type
Allowed languages
C++

Nén xâu ký tự là một kỹ thuật dùng để giảm dung lượng lưu trữ của dữ liệu. Một trong những phương pháp nén đơn giản nhất là "Run-Length Encoding" (RLE).

Yêu cầu: Hãy viết chương trình nén một xâu ký tự S theo quy tắc sau:

Với mỗi nhóm các ký tự giống nhau liên tiếp, ta sẽ thay thế chúng bằng ký tự đó và số lần nó lặp lại.
Quy tắc đặc biệt: Nếu một ký tự chỉ xuất hiện 1 lần liên tiếp, ta chỉ viết chính ký tự đó mà không viết số 1.

Ví dụ:

Xâu AAAA có 4 ký tự 'A' liên tiếp, sẽ được nén thành A4.
Xâu C chỉ có 1 ký tự 'C', sẽ được giữ nguyên là C (chứ không phải C1).
Kết hợp lại, xâu AAABBCDDDDE sẽ được nén thành A3B2CD4E.

Đầu vào

Một dòng duy nhất chứa xâu ký tự S.

Đầu ra

In ra xâu ký tự đã được nén theo quy tắc trên.

Ràng buộc

Xâu S chỉ chứa các chữ cái in hoa (từ 'A' đến 'Z').
Độ dài của xâu S từ 1 đến 1000 ký tự.

Testcase mẫu

input: "WWWWWWBBWXYZ"
output: "W6B2WXYZ"
Giải thích: "Gồm cả chuỗi lặp lại (W, B) và chuỗi không lặp lại (W, X, Y, Z)."

input: "ABCDE"
output: "ABCDE"
Giải thích: "Khi không có ký tự nào lặp lại liên tiếp, xâu nén giống hệt xâu gốc."


Comments

There are no comments at the moment.