summaryrefslogtreecommitdiff
path: root/comp/work/55/rle.py
blob: c2c43da3235f9b3246d91c5edf6604d04e956c15 (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
def rle(s):
    en = ""
    c = s[0] 
    cc = 0
    for i in s:
        if i == c: cc += 1
        else:
            en += (c if (cc == 1) else str(cc) + c)
            c = i
            cc = 1
    en += (c if (cc == 1) else str(cc) + c)
    return en

def rld(s):
    de = ""
    cc = ""
    c = '' 
    for i in s:
        if i.isdigit(): cc += i
        else:
            c = i
            if not cc.isdigit(): cc = "1"
            de += c * int(cc)
            cc = ""

    return de 


print(rld(rle("abbbcccd")))