কম্পিউটার টিউটোরিয়াল

পাইথনে রান-লেংথ এনকোডিং (Run Length Encoding)

এই টিউটোরিয়ালে আমরা পাইথনে রান-লেংথ এনকোডিং তৈরি করা শিখব। একটি স্ট্রিং দেওয়া থাকলে একটি নতুন স্ট্রিং রিটার্ন করতে হবে যাতে char and frequency থাকে।

উদাহরণস্বরূপ, স্ট্রিং tutorialspoint এনকোড হবে t3u1o2r1i2a1l1s1p1n1। অর্ডার হল প্রতিটি char+frequency। সবগুলো জয়েন করে রিটার্ন করুন। প্রোগ্রাম লিখতে নিচের ধাপগুলো অনুসরণ করুন।

  • run_length_encoding নামে ফাংশন লিখুন।
  • OrderedDict ব্যবহার করে একটি ডিকশনারি ইনিশিয়ালাইজ করুন যাতে চ্যারের প্রাথমিক কাউন্ট ০ থাকে।
  • স্ট্রিংয়ের প্রতিটি ক্যারেক্টার বায়ে ইটারেট করুন এবং ডিকশনারিতে কাউন্ট বাড়ান।
  • সব চ্যারেক্টার এবং তাদের ফ্রিকোয়েন্সি জয়েন করুন। এবং প্রিন্ট করুন।
  • স্ট্রিং ইনিশিয়ালাইজ করুন এবং ফাংশন আহ্বান করুন।

উদাহরণ

উপরের টেক্সটের জন্য কোড নিচে দেওয়া হলো।

# 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

উপসংহার

টিউটোরিয়াল সম্পর্কে কোনো সন্দেহ থাকলে কমেন্ট সেকশনে জানান।


  1. পাইথনে স্ট্রিং-এ জোড় দৈর্ঘ্যের শব্দ প্রিন্ট করা

  2. পাইথনে স্ট্রিংয়ের সর্বোচ্চ দৈর্ঘ্য কত

  3. পাইথন স্ট্রিং-এর সর্বোচ্চ দৈর্ঘ্য কত

  4. পাইথনে স্ট্রিং-এর দৈর্ঘ্য পাওয়া