Le Run-length encoding, que j’abrégerai RLE, est grosso-modo un algorithme de compression de données créé à la base pour réduire la taille des images. Il consiste à indiquer pour chaque même élément le nombre de répétitions consécutives de ce dernier.
Une chaine de caractères comme celle-ci : WWWWWBWWWWWWBBBWWWWWWWWWBWWWWWWWW33′, sera donc après passage dans une fonction de compression RLE comme ceci : 5W1B6W3B9W1B8W23.
Ayant vu quelques personnes sur IRC s’amuser à implémenter leurs versions de cet algorithme dans différents langages, je me suis dit qu’il serait peut-être sympa de m’y essayer moi aussi 
Et voilà mon résultat :
#!/usr/bin/env python #-*- encoding: utf-8 -*- from itertools import groupby to_rle_convert = 'WWWWWBWWWWWWBBBWWWWWWWWWBWWWWWWWW33' def rle(string): return (''.join([str(len(list(group)))+name for name, group in groupby(string)])) rle_converted = rle(to_rle_convert) print rle_converted def rle_decoder(string): return ''.join([int(elem)*string[id+1] for id, elem in enumerate(string) if id%2 == 0]) print rle_decoder(rle_converted)
Si je mets mon code à disposition ici et dans mon portfolio, c’est bien entendu parce que j’attends de vous que vous me donniez vos remarques/suggestions/conseils avisés

Loading ...



Learn more
Feedback