কম্পিউটার

পাইথনে স্ট্রিং কম্প্রেশন করার জন্য প্রোগ্রাম


ধরুন আমরা একটি স্ট্রিং s আছে. আমাদের এই স্ট্রিংটিকে Run length এনকোডিং ফর্মে কম্প্রেস করতে হবে। সুতরাং যখন একটি অক্ষর পরপর k সংখ্যার পুনরাবৃত্তি হয় যেমন 'bbbb' এখানে 'b' অক্ষরটি পরপর চারবার পুনরাবৃত্তি হয়, তাই এনকোড করা ফর্মটি হবে 'b4'। একক অক্ষরের জন্য আমরা এতে গণনা যোগ করব না।

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

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

  • res :=ফাঁকা স্ট্রিং
  • cnt :=1
  • এর জন্য 1 থেকে s - 1 এর আকারের মধ্যে, কর
    • যদি s[i - 1] s[i] এর মত হয়, তাহলে
      • cnt :=cnt + 1
    • অন্যথায়,
      • res :=res concatenate s[i - 1]
      • যদি cnt> 1, তারপর
        • res :=res concatenate cnt
      • cnt :=1
  • res :=res + s এর শেষ অক্ষর
  • যদি cnt> 1, তারপর
    • res :=res concatenate cnt
  • রিটার্ন রিটার্ন

উদাহরণ

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

def solve(s):
   res = ""
   cnt = 1
   for i in range(1, len(s)):
      if s[i - 1] == s[i]:
         cnt += 1
      else:
         res = res + s[i - 1]
         if cnt > 1:
            res += str(cnt)
         cnt = 1
   res = res + s[-1]
   if cnt > 1:
      res += str(cnt)
   return res

s = "abbbaaaaaaccdaaab"
print(solve(s))

ইনপুট

"abbbaaaaaaccdaaab"

আউটপুট

ab3a6c2da3b

  1. হেক্স স্ট্রিংকে দশমিকে রূপান্তর করতে পাইথন প্রোগ্রাম

  2. একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রাম একটি স্ট্রিং মধ্যে ইউআরএল চেক করতে

  4. একটি স্ট্রিং মধ্যে মিরর অক্ষর খুঁজে পেতে পাইথন প্রোগ্রাম