String Compression in Python

Implement a simple run-length encoding (RLE) compression for strings.

IntermediateString ProgramsExample 16 of 25
string-compression.py
Run in browser
1# Program for simple string compression (run-length encoding)
2
3s = input("Enter a string: ")
4
5if not s:
6 print("Compressed string: ")
7else:
8 result = []
9 count = 1
10 for i in range(1, len(s)):
11 if s[i] == s[i - 1]:
12 count += 1
13 else:
14 result.append(f"{s[i-1]}{count}")
15 count = 1
16 result.append(f"{s[-1]}{count}")
17
18 compressed = "".join(result)
19 print("Compressed string:", compressed)

Output

Enter a string: aaabbc
Compressed string: a3b2c1

What's going on

We count consecutive repeating characters and append character+count pairs to build a compressed representation.