This repository has been archived on 2025-11-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
small-projects/run-length-encoding.py

20 lines
434 B
Python

def sameChar(chars):
if len(chars) < 2 or chars[0] != chars[1]:
return 1
else:
return 1 + sameChar(chars[1:])
def RLE(uncompressed):
total_chars = 0
compressed = []
while total_chars < len(uncompressed):
char_count = sameChar(uncompressed[total_chars:])
compressed.append(f"{uncompressed[total_chars]} {char_count}")
total_chars += char_count
return " ".join(compressed)
print(RLE(input("Uncompressed text: ")))