ในบทช่วยสอนนี้ เราจะมาเรียนรู้วิธีสร้างการเข้ารหัสแบบรัน-ยาวใน Python ให้สตริงส่งคืนสตริงใหม่ที่มี อักขระและความถี่
ตัวอย่างเช่น สตริง tutorialspoint จะถูกเข้ารหัสเป็น t3u1o2r1i2a1l1s1p1n1 . ลำดับคือทุก ถ่าน+ความถี่ . เข้าร่วมทั้งหมดและกลับมา ดูขั้นตอนด้านล่างเพื่อเขียนโปรแกรม
-
เขียนฟังก์ชันด้วยชื่อ run_length_encoding
-
เริ่มต้นพจนานุกรมด้วย OrderedDict เพื่อรับการนับตัวอักษรเริ่มต้นเป็น 0
-
วนซ้ำทุกอักขระในสตริงและเพิ่มจำนวนในพจนานุกรม
-
เข้าร่วมตัวอักษรและความถี่ทั้งหมด แล้วพิมพ์
-
เริ่มต้นสตริงและเรียกใช้ฟังก์ชัน
ตัวอย่าง
มาดูโค้ดของข้อความด้านบนกันเลยค่ะ
# importing the collections import collections # function def run_length_encoding(string): # initialzing the count dict count_dict = collections.OrderedDict.fromkeys(string, 0) # iterating over the string for char in string: # incrementing the frequency count_dict[char] += 1 # initializing the empty encoded string encoded_string = "" # joining all the chars and their frequencies for key, value in count_dict.items(): # joining encoded_string += key + str(value) # printing the encoded string print(encoded_string) # initializing the strings string = "tutorialspoint" # invoking the function run_length_encoding(string) # another string string = "aaaaaabbbbbccccccczzzzzz" run_length_encoding(string)
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
t3u1o2r1i2a1l1s1p1n1 a6b5c7z6
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น