Mental Model
We try to split a string into parts where each part reads the same forwards and backwards. We explore all ways by choosing parts step-by-step and going back if a choice doesn't work.
Analogy: Imagine cutting a ribbon into pieces where each piece is a mirror image of itself. You try cutting at different points, and if a piece isn't symmetrical, you undo the cut and try another place.
s = "a b a c" Partitions: [] Try cutting: [a] [b a c] [a b] [a c] [a b a] [c] Each [] is a substring to check palindrome.
