ধরুন আমাদের একটি স্ট্রিং s আছে। আমাদের এই স্ট্রিংকে রান-লেংথ এনকোডিং ফরম্যাটে কম্প্রেস করতে হবে। তাই যখন একটি ক্যারেক্টার k বার ম 쭉বার পাওয়া যায় (যেমন 'bbbb' এখানে 'b' চারবার ম 쭉বার পাওয়া গেছে), তবে এনকোডেড ফরম্যাট হবে 'b4'। একক ক্যারেক্টারের জন্য কাউন্ট যোগ করা হবে না।
উদাহরণস্বরূপ, যদি ইনপুট s = "abbbaaaaaaccdaaab" হয়, তবে আউটপুট হবে ab3a6c2da3b।
সমাধানের ধাপসমূহ
res :=খালি স্ট্রিংcnt := 1for 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