Mental Model
We try to split a string into parts where each part reads the same forwards and backwards. We explore all ways to do this by trying each possible cut and going back if it doesn't work.
Analogy: Imagine cutting a ribbon into pieces where each piece is a perfect mirror image of itself. You try cutting at every spot, and if a piece isn't a mirror, you undo the cut and try a different spot.
s = "a b a c" Indices: 0 1 2 3 Partitions: [a] [b] [a] [c] Pointers: start ↑ end -> We try cuts between letters to form palindrome pieces.
