Mental Model
We want to split a string into parts where each part reads the same forwards and backwards. We try all splits step-by-step and keep only the good ones.
Analogy: Imagine cutting a ribbon into pieces where each piece is a perfect mirror image if folded. You try cutting at every spot and keep the cuts that make all pieces symmetrical.
s = "a b a c"
Partitions: ["a", "b", "a", "c"]
↑
Try cutting here -> check if substring is palindrome
If yes, keep and move forward