class RLE: def decode(self,str): str += " " current = "" count = 0 result = '' for i in str: if not current: current = i count = 1 continue if i == current: count += 1 else: if count == 0: result += current else: result += '{}{}'.format(count,current) current = i count = 1 return result def encode(self,str): result = "" number = '' i=0 for i in str: if i.isdigit(): number += i continue else: print("{}:{}".format(i,number)) result += i*int(number) number = '' return result r = RLE() print(r.decode("aaaabcccaa")) print(r.encode("3e4f2e"))
|