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 different points, and if a piece isn't a mirror, you undo the cut and try another place.
s = "a b a c" Indices: 0 1 2 3 Partitions try: [a] [b a c], [a b] [a c], [a b a] [c], etc. Each [] is a substring checked if palindrome.
