Menu
CoddyTech

String Compression

Bạn nhận được một chuỗi (string) gồm các chữ cái tiếng Anh, s. Hãy nén chuỗi: thay mỗi dãy gồm từ hai chữ cái giống nhau trở lên đứng liền nhau bằng chữ cái đó theo sau là độ dài của dãy, còn chữ cái đứng riêng thì giữ nguyên. Ví dụ, aabccc trở thành a2bc3. Hãy trả về chuỗi đã nén.

Chữ hoa và chữ thường là các chữ cái khác nhau: aA gồm hai dãy, mỗi dãy có độ dài 1.

Hàm

compress(s: string) → string
sstring
chuỗi cần nén, chỉ gồm chữ cái tiếng Anh
Trả vềstring
chuỗi đã nén, mỗi đoạn được viết dưới dạng ký tự theo sau là độ dài của đoạn đó nếu độ dài lớn hơn 1

Ràng buộc

  • 1 ≤ s.length ≤ 2 × 104
  • s chỉ chứa các chữ cái tiếng Anh, từ a đến z và từ A đến Z.
  • Độ dài của một lần chạy được viết dưới dạng số thập phân và có thể gồm nhiều chữ số.

Ví dụ

Đầu vào
s = "aabccc"
Đầu ra
"a2bc3"
Giải thích
Các đoạn lặp là aa, b và ccc. Chúng trở thành a2, b (một chữ cái đứng riêng không có số đếm) và c3.
challenge icon

Câu hỏi mở rộng

Hãy viết hàm ngược lại: với một chuỗi đã nén như ab12, hãy khôi phục chuỗi ban đầu. Bạn đọc số đếm có nhiều chữ số như thế nào?

Đặt lại code
def compress(s):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "aabccc"

Đầu ra mong đợi

"a2bc3"