কম্পিউটার

পাইথনে একটি স্ট্রিংকে সাধারণ আকারে তার রান-লেংথ ফর্মে এনকোড করার প্রোগ্রাম


ধরুন আমরা একটি স্ট্রিং s আছে. আমাদের রান-লেংথ এনকোডিং কৌশল ব্যবহার করে এটি এনকোড করতে হবে। আমরা জানি, রান-লেংথ এনকোডিং হল স্ট্রিং এনকোডিং করার একটি দ্রুত এবং সহজ পদ্ধতি। ধারণাটি নিম্নরূপ - একটি একক গণনা এবং অক্ষর হিসাবে পুনরাবৃত্তিমূলক উপাদান (অক্ষর)।

সুতরাং, যদি ইনপুট s ="BBBBAAADDCBB" এর মত হয়, তাহলে আউটপুট হবে "4B3A2D1C2B"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • res :=ফাঁকা স্ট্রিং
  • tmp :=s এর প্রথম অক্ষর
  • গণনা :=1
  • 1 থেকে s আকারের রেঞ্জের জন্য, করুন
    • যদি s[i] tmp এর মত না হয়, তাহলে
      • res :=res concatenate count concatenate tmp
      • tmp :=s[i]
      • গণনা :=1
    • অন্যথায়,
      • গণনা :=গণনা + 1
  • রিটার্ন res concatenate কাউন্ট concatenate tmp

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, s):
      res = ""
      tmp = s[0]
      count = 1
      for i in range(1,len(s)):
         if s[i] != tmp:
            res += str(count) + tmp
            tmp = s[i]
            count = 1
         else:
            count += 1
      return res + str(count) + tmp
ob = Solution() print(ob.solve("BBBBAAADDCBB"))

ইনপুট

"BBBBAAADDCBB"

আউটপুট

4B3A2D1C2B

  1. পাইথন প্রোগ্রাম একটি অ্যারের মধ্যে বিপরীত গণনা

  2. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং শব্দ গণনা?

  3. একটি প্রদত্ত স্ট্রিং সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম

  4. স্ট্রিং এ একটি শব্দের ঘটনা গণনা করার জন্য একটি পাইথন প্রোগ্রাম লিখুন?