मान लीजिए हमारे पास एक स्ट्रिंग s है। s एक रन-लेंथ एन्कोडेड स्ट्रिंग है, हमें इसका डिकोडेड संस्करण ढूंढना है। जैसा कि हम जानते हैं, रन-लेंथ एन्कोडिंग स्ट्रिंग्स को एन्कोड करने का एक तेज और सरल तरीका है। विचार इस प्रकार है - दोहराए गए क्रमिक तत्वों (वर्णों) को एकल गणना और वर्ण के रूप में। उदाहरण के लिए, यदि स्ट्रिंग "BBBBAAADDCBB" की तरह है तो इसे "4B3A2D1C2B" के रूप में एन्कोड किया जाएगा।
उदाहरण के लिए, यदि इनपुट है s = "4B3A2D1C2B", तो आउटपुट होगा "BBBBAAADDCBB"
इसे हल करने के लिए, हम निम्नলিখিত चरणों का पालন करेंगे:
- output := खाली स्ट्रिंग
- num := खाली स्ट्रिंग
- s में प्रत्येक वर्ण i के लिए, करें
- यदि i वर्णमाला है, तो
- output := output + i*(num संख्या के रूप में)
- num := खाली स्ट्रिंग
- अन्यथा,
- num := num + i
- यदि i वर्णमाला है, तो
- output वापस करें
বेहतर বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখুন:
উদাহরণ
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