| 1 | Initialize pointers | [0:0] | "A" | A=1 (need B,C) | None | A |
| 2 | Expand right | [0:1] | "AD" | A=1 (need B,C) | None | A -> D |
| 3 | Expand right | [0:2] | "ADO" | A=1 (need B,C) | None | A -> D -> O |
| 4 | Expand right | [0:3] | "ADOB" | A=1, B=1 (need C) | None | A -> D -> O -> B |
| 5 | Expand right | [0:4] | "ADOBE" | A=1, B=1 (need C) | None | A -> D -> O -> B -> E |
| 6 | Expand right | [0:5] | "ADOBEC" | A=1, B=1, C=1 (all matched) | ADOBEC | A -> D -> O -> B -> E -> C |
| 7 | Shrink left | [1:5] | "DOBEC" | A=0, B=1, C=1 (missing A) | ADOBEC | D -> O -> B -> E -> C |
| 8 | Expand right | [1:6] | "DOBECO" | A=0, B=1, C=1 (missing A) | ADOBEC | D -> O -> B -> E -> C -> O |
| 9 | Expand right | [1:7] | "DOBECOD" | A=0, B=1, C=1 (missing A) | ADOBEC | D -> O -> B -> E -> C -> O -> D |
| 10 | Expand right | [1:8] | "DOBECODE" | A=0, B=1, C=1 (missing A) | ADOBEC | D -> O -> B -> E -> C -> O -> D -> E |
| 11 | Expand right | [1:9] | "DOBECODEB" | A=0, B=2, C=1 (missing A) | ADOBEC | D -> O -> B -> E -> C -> O -> D -> E -> B |
| 12 | Expand right | [1:10] | "DOBECODEBA" | A=1, B=2, C=1 (all matched) | ADOBEC | D -> O -> B -> E -> C -> O -> D -> E -> B -> A |
| 13 | Shrink left | [2:10] | "OBECODEBA" | A=1, B=2, C=1 (all matched) | ADOBEC | O -> B -> E -> C -> O -> D -> E -> B -> A |
| 14 | Shrink left | [3:10] | "BECODEBA" | A=1, B=2, C=1 (all matched) | ADOBEC | B -> E -> C -> O -> D -> E -> B -> A |
| 15 | Shrink left | [4:10] | "ECODEBA" | A=1, B=2, C=1 (all matched) | ADOBEC | E -> C -> O -> D -> E -> B -> A |
| 16 | Shrink left | [5:10] | "CODEBA" | A=1, B=1, C=1 (all matched) | ADOBEC | C -> O -> D -> E -> B -> A |
| 17 | Shrink left | [6:10] | "ODEBA" | A=1, B=1, C=0 (missing C) | ADOBEC | O -> D -> E -> B -> A |
| 18 | Expand right | [6:11] | "ODEBAN" | A=1, B=1, C=0 (missing C) | ADOBEC | O -> D -> E -> B -> A -> N |
| 19 | Expand right | [6:12] | "ODEBANC" | A=1, B=1, C=1 (all matched) | ADOBEC | O -> D -> E -> B -> A -> N -> C |
| 20 | Shrink left | [7:12] | "DEBANC" | A=1, B=1, C=1 (all matched) | ADOBEC | D -> E -> B -> A -> N -> C |
| 21 | Shrink left | [8:12] | "EBANC" | A=1, B=1, C=1 (all matched) | ADOBEC | E -> B -> A -> N -> C |
| 22 | Shrink left | [9:12] | "BANC" | A=1, B=1, C=1 (all matched) | BANC | B -> A -> N -> C |
| 23 | Shrink left | [10:12] | "ANC" | A=1, B=0, C=1 (missing B) | BANC | A -> N -> C |
| 24 | Right pointer at end | [10:12] | "ANC" | A=1, B=0, C=1 (missing B) | BANC | A -> N -> C |