ধরুন আমরা একটি স্ট্রিং s আছে. আমাদের রান-লেংথ এনকোডিং কৌশল ব্যবহার করে এটি এনকোড করতে হবে। আমরা জানি, রান-লেংথ এনকোডিং হল স্ট্রিং এনকোডিং করার একটি দ্রুত এবং সহজ পদ্ধতি। ধারণাটি নিম্নরূপ - একটি একক গণনা এবং অক্ষর হিসাবে পুনরাবৃত্তিমূলক উপাদান (অক্ষর)।
সুতরাং, যদি ইনপুট s ="BBBBAAADDCBB" এর মত হয়, তাহলে আউটপুট হবে "4B3A2D1C2B"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- res :=ফাঁকা স্ট্রিং
- tmp :=s এর প্রথম অক্ষর
- গণনা :=1
- 1 থেকে s আকারের রেঞ্জের জন্য, করুন
- যদি s[i] tmp এর মত না হয়, তাহলে
- res :=res concatenate count concatenate tmp
- tmp :=s[i]
- গণনা :=1
- অন্যথায়,
- গণনা :=গণনা + 1
- যদি s[i] tmp এর মত না হয়, তাহলে
- রিটার্ন 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