String Compression

Compress string: "aaabb" -> "a3b2".

AdvancedPhase 5 - Category 5: Advanced String LogicExample 12 of 14
string-compression.py
1# Take string
2s = input("Enter string: ")
3
4# Compress
5if not s:
6 compressed = ""
7else:
8 compressed = ""
9 count = 1
10 for i in range(1, len(s)):
11 if s[i] == s[i-1]:
12 count += 1
13 else:
14 compressed += s[i-1] + str(count)
15 count = 1
16 compressed += s[-1] + str(count)
17
18print(f"Compressed: {compressed}")

Output

Enter string: aaabbcc
Compressed: a3b2c2

What's going on

Count consecutive characters.

Key Concepts:

Track consecutive count
Append char + count when changes
Handle last group