AlgoDesign

Run length encoding

1class Solution:
2    def decode(self, s):
3        res, num = [], 0
4        for i in range(len(s)):
5            if s[i].isnumeric():
6                num *= 10
7                num += int(s[i])
8            else:
9                res.append(num * s[i])
10                num = 0
11
12        return "".join(res)
13
14    def encode(self, s):
15        if len(s) == 0: return ""
16        res = []
17        count, curr = 0, ""
18        for i in range(len(s)):
19            if curr != s[i]:
20                if curr != "": res.extend([str(count), curr])
21                count = 1
22                curr = s[i]
23            else: count += 1
24        
25        res.extend([str(count), curr])
26        
27        return "".join(res)