String Compression

medium

Compress string in-place using read/write pointers

String Compression

Key Insight

Read pointer counts consecutive groups. Write pointer writes char then count digits in-place.

Step 1Setup
Scan consecutive groups
slow
fast
a
0
a
1
b
2
b
3
c
4
c
5
c
6
same direction

Compress ["a","a","b","b","c","c","c"] in-place. write=0, read=0.

1 / 6

Learn the Pattern

Practice the Code

Step-by-Step Walkthrough: String Compression

Read pointer counts consecutive groups. Write pointer writes char then count digits in-place.

  1. Setup

    Compress ["a","a","b","b","c","c","c"] in-place. write=0, read=0.

  2. Group "a"

    Count 2 consecutive "a"s. Write "a" at [0], "2" at [1]. write=2.

  3. Group "b"

    Count 2 consecutive "b"s. Write "b" at [2], "2" at [3]. write=4.

  4. Group "c"

    Count 3 consecutive "c"s. Write "c" at [4], "3" at [5]. write=6.

  5. Truncate

    Only first 6 characters are valid. Last element is leftover.

  6. Result

    Compressed length is 6: ["a","2","b","2","c","3"].