Đề 18 - A. Nén xâu ký tự
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.
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.
Một dòng duy nhất chứa xâu ký tự S.
In ra xâu ký tự đã được nén theo quy tắc trên.
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ự.
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