ধরুন আমরা একটি স্ট্রিং s আছে. s একটি রান-দৈর্ঘ্যের এনকোডেড স্ট্রিং, আমাদের এটির ডিকোডেড সংস্করণ খুঁজে বের করতে হবে। আমরা জানি, রান-লেংথ এনকোডিং হল স্ট্রিং এনকোডিং করার একটি দ্রুত এবং সহজ পদ্ধতি। ধারণাটি নিম্নরূপ - একটি একক গণনা এবং অক্ষর হিসাবে পুনরাবৃত্তিমূলক উপাদান (অক্ষর)। উদাহরণস্বরূপ, যদি স্ট্রিংটি "BBBBAAADDCBB" এর মতো হয় "4B3A2D1C2B" হিসাবে এনকোড করা হবে৷
সুতরাং, যদি ইনপুট s ="4B3A2D1C2B" এর মত হয়, তাহলে আউটপুট হবে "BBBBAAADDCBB"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- আউটপুট :=ফাঁকা স্ট্রিং
- num:=ফাঁকা স্ট্রিং
- প্রতিটি অক্ষরের জন্য i s, do
- যদি আমি বর্ণমালা হয়, তাহলে
- আউটপুট :=আউটপুট + i*(সংখ্যা হিসাবে সংখ্যা)
- num:=ফাঁকা স্ট্রিং
- অন্যথায়,
- সংখ্যা :=সংখ্যা + i
- যদি আমি বর্ণমালা হয়, তাহলে
- রিটার্ন আউটপুট
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, s): output = "" num="" for i in s: if i.isalpha(): output+=i*int(num) num="" else: num+=i return output ob = Solution() print(ob.solve("4B3A2D1C2B"))
ইনপুট
"4B3A2D1C2B"
আউটপুট
BBBBAAADDCBB