summaryrefslogtreecommitdiffstats
path: root/RLE_decoder.py
blob: 46a9e6c26608b48d80ffab45086c7d8adf5012dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from string import digits

def decode(rle):
    out = ""
    skip = 0
    for i, val in enumerate(rle):
        if skip > 0:
            skip -= 1
            continue
        if val not in digits:
            out += val
        else:
            num = ""
            for j, val2 in enumerate(rle[i:]):
                if val2 in digits:
                    num += val2
                else:
                    skip = j
                    for k in range(int(num)):
                        out += val2
                    break
    return out

def print_decoded(decoded):
    print()
    line = ""
    for i in decoded:
        if i == '!':
            print(line)
            break
        elif i == '$':
            print(line)
            line = ""
        else:
            line += i