Xử lý chuỗiBăm chuỗi
Mô tả
Ở làng Sinh, đấu vật cổ truyền không chỉ là sức mạnh mà còn là nghệ thuật. Mỗi trận đấu được ghi lại bằng chuỗi token — các thế võ liên tiếp như keo keo nang nang nang bat. Một vị cao niên lão làng nhận ra rằng rất nhiều thế võ lặp lại liên tiếp: ai lại đi viết keo keo thay vì 2keo?
Ông quyết định áp dụng kỹ thuật nén RLE (Run-Length Encoding) để lưu trữ lịch sử trận đấu gọn gàng hơn. Quy tắc đơn giản: nếu một token xuất hiện liên tiếp k lần thì thay bằng k theo sau là token đó (viết liền). Ví dụ keo keo nang nang nang bat thành 2keo3nang1bat.
Nhiệm vụ của bạn là viết hàm nhận một chuỗi token và trả về chuỗi RLE đã nén.
Đầu vào
- Một chuỗi
sgồm các token phân tách bởi một khoảng trắng. Mỗi token là chữ cái Latin thường (a-z), độ dài 1–5 ký tự.
Đầu ra
- Trả về chuỗi RLE đã nén, không có khoảng trắng.
Ràng buộc
1 ≤ len(s) ≤ 10^6(tính cả khoảng trắng).- Token có độ dài 1 đến 5.
- Số lần lặp liên tiếp tối đa của một token không vượt quá
10^5(an toàn cho số nguyên).
Ví dụ
Ví dụ 1:
- Đầu vào:
"keo keo nang nang nang bat" - Đầu ra:
"2keo3nang1bat" - Giải thích:
keolặp 2 lần →2keo,nanglặp 3 lần →3nang,batlặp 1 lần →1bat.
Ví dụ 2:
- Đầu vào:
"ghe" - Đầu ra:
"1ghe" - Giải thích: Chỉ một token duy nhất, số lần lặp là 1.