Trong hướng dẫn này, học cách tạo run-length encoding trong Python. Cho một chuỗi, trả về chuỗi mới chứa ký tự và tần suất.
Ví dụ, chuỗi tutorialspoint sẽ được mã hóa thành t3u1o2r1i2a1l1s1p1n1. Thứ tự là mỗi ký tự + tần suất. Ghép tất cả và trả về. Các bước viết chương trình:
- Viết hàm tên run_length_encoding.
- Khởi tạo dictionary với OrderedDict để có count ban đầu của ký tự là 0.
- Lặp qua từng ký tự chuỗi và tăng count trong dictionary.
- Ghép tất cả ký tự và tần suất. In ra.
- Khởi tạo chuỗi và gọi hàm.
Ví dụ
# Import collections
import collections
def run_length_encoding(string):
# Khởi tạo count dict
count_dict = collections.OrderedDict.fromkeys(string, 0)
# Lặp qua chuỗi
for char in string:
count_dict[char] += 1
# Khởi tạo chuỗi mã hóa rỗng
encoded_string = ""
# Ghép tất cả ký tự và tần suất
for key, value in count_dict.items():
encoded_string += key + str(value)
print(encoded_string)
# Khởi tạo chuỗi
string = "tutorialspoint"
run_length_encoding(string)
# Chuỗi khác
string = "aaaaaabbbbbccccccczzzzzz"
run_length_encoding(string)
Kết quả
Chạy code trên cho output:
t3u1o2r1i2a1l1s1p1n1 a6b5c7z6
Kết luận
Nếu có thắc mắc, hãy đề cập ở phần comment.