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

পাইথনে স্ট্রিং কম্প্রেশন (রান-লেংথ এনকোডিং) করার প্রোগ্রাম

ধরুন আমাদের একটি স্ট্রিং s আছে। আমাদের এই স্ট্রিংকে রান-লেংথ এনকোডিং ফরম্যাটে কম্প্রেস করতে হবে। তাই যখন একটি ক্যারেক্টার k বার ম 쭉বার পাওয়া যায় (যেমন 'bbbb' এখানে 'b' চারবার ম 쭉বার পাওয়া গেছে), তবে এনকোডেড ফরম্যাট হবে 'b4'। একক ক্যারেক্টারের জন্য কাউন্ট যোগ করা হবে না।

উদাহরণস্বরূপ, যদি ইনপুট s = "abbbaaaaaaccdaaab" হয়, তবে আউটপুট হবে ab3a6c2da3b।

সমাধানের ধাপসমূহ

  • res := খালি স্ট্রিং
  • cnt := 1
  • for i in range 1 to size of s - 1:
    • যদি s[i-1] == s[i], তবে cnt := cnt + 1
    • অন্যথায়:
      • res := res + s[i-1]
      • যদি cnt > 1, তবে res := res + str(cnt)
      • cnt := 1
  • res := res + s[-1] (স্ট্রিংয়ের শেষ ক্যারেক্টার)
  • যদি cnt > 1, তবে res := res + str(cnt)
  • res রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

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. পাইথন প্রোগ্রাম: স্ট্রিং-এ URL চেক করা

  4. পাইথন প্রোগ্রাম: স্ট্রিং-এ মিরর ক্যারেক্টার বের করা