Skip to content
Snippets Groups Projects
Commit f0a03866 authored by La Fée Verte's avatar La Fée Verte
Browse files

adding generator version for rle/rld

parent c5e4e8ca
No related branches found
No related tags found
No related merge requests found
"""Example using generators for run length encode/decode."""
def rleunits(str1):
"""Generate run length encoded units."""
current = None
count = 0
for letter in str1:
if letter == current:
count += 1
else:
if current:
yield str(count)+current
count = 1
current = letter
def rldunits(str1):
"""Generate run length decoded units."""
count = None
for c in str1:
if c.isdigit():
if not count:
count = c
else:
count += c
else:
yield(c * int(count))
count = None
def main():
"""Drive the example."""
str1 = "AAAABBBBCDDEEFFFFFFFFFFF"
encoded = ""
for i in rleunits(str1):
encoded += i
print(encoded)
unencoded = ""
for i in rldunits(encoded):
unencoded += i
print(unencoded)
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment