Extra¶
Functie 1¶
Schrijf een functie compress(s), waarvan het argument een binaire string s is met een lengte van minder dan of gelijk aan 64 en dat als resultaat een andere binaire string teruggeeft. De resulterende binaire string zou een run-length codering van het origineel moeten zijn, zoals hierboven beschreven.
def compress(s):
result = ""
while len(s) > 0:
cnt = count(s[0], s)
bi = num_to_base_b(cnt, 2)
bi = (7 - len(bi)) * "0" + bi
result = result + s[0] + bi
s = s[cnt:]
return result
Functie 2¶
Schrijf vervolgens een functie uncompress(c) die het comprimeren van de functie compress “omkeert” of “ongedaan maakt”.
Dat wil zeggen, uncompress(compress(s)) zou s moeten teruggeven.
def uncompress(s):
result = ""
while len(s) > 0:
c = s[0]
bi = s[1:8]
cnt = base_b_to_num(bi, 2)
result = cnt * c + result
s = s[8:]
return result