मान लीजिए हमारे पास एक स्ट्रिंग s है। हमें रन-लेंथ एन्कोडिंग तकनीक का उपयोग करके इसे एन्कोड करना है। जैसा कि हम जानते हैं, रन-लेंथ एन्कोडिंग स्ट्रिंग्स को एन्कोड करने की एक तेज और सरल विधि है। विचार इस प्रकार है: दोहराए गए क्रमिक तत्वों (वर्णों) को एकल गणना और वर्ण के रूप में।
उदाहरण के लिए, यदि इनपुट है s = "BBBBAAADDCBB", तो आउटपुट होगा "4B3A2D1C2B"।
हल करने के चरण
res :=खाली स्ट्रिंग।tmp := sका पहला वर्ण।count := 1iको 1 सेsके आकार तक:- यदि
s[i] != tmp, तो:res := res + count + tmptmp := s[i]count := 1
- अन्यथा,
count := count + 1।
- यदि
res + count + 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