ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีสร้าง Run-length encoding ใน Python โดยให้สตริงหนึ่ง ให้คืนสตริงใหม่ที่มี char และ frequency
ตัวอย่างเช่น สตริง tutorialspoint จะถูกเข้ารหัสเป็น t3u1o2r1i2a1l1s1p1n1 ลำดับคือ char+frequency ทุกตัว รวมเข้าด้วยกันและคืนค่า ดูขั้นตอนด้านล่างเพื่อเขียนโปรแกรม
เขียนฟังก์ชันชื่อ run_length_encoding
เริ่มต้นพจนานุกรมด้วย OrderedDict เพื่อให้ได้จำนวนเริ่มต้นของ char เป็น 0
วนลูปทุกตัวอักษรของสตริงและเพิ่มจำนวนในพจนานุกรม
รวม char ทั้งหมดและความถี่ของพวกเขา และพิมพ์ออกมา
เริ่มต้นสตริงและเรียกฟังก์ชัน
ตัวอย่าง
มาดูโค้ดสำหรับข้อความข้างต้น
# นำเข้า collections
import collections
# ฟังก์ชัน
def run_length_encoding(string):
# เริ่มต้นพจนานุกรมนับ
count_dict = collections.OrderedDict.fromkeys(string, 0)
# วนลูปผ่านสตริง
for char in string:
# เพิ่มความถี่
count_dict[char] += 1
# เริ่มต้นสตริงเข้ารหัสว่าง
encoded_string = ""
# รวม char ทั้งหมดและความถี่
for key, value in count_dict.items():
# รวม
encoded_string += key + str(value)
# พิมพ์สตริงเข้ารหัส
print(encoded_string)
# เริ่มต้นสตริง
string = "tutorialspoint"
# เรียกฟังก์ชัน
run_length_encoding(string)
# สตริงอีกตัว
string = "aaaaaabbbbbccccccczzzzzz"
run_length_encoding(string)
ผลลัพธ์
ถ้าคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้
t3u1o2r1i2a1l1s1p1n1 a6b5c7z6
สรุป
หากคุณมีข้อสงสัยในบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น