Mental Model
We want to split a string into the fewest pieces so that every piece reads the same forwards and backwards.
Analogy: Imagine cutting a ribbon into the smallest number of palindromic segments, like cutting a necklace into symmetrical beads.
s = "a b a c"
Indices: 0 1 2 3
Partitions: a | b | a | c or aba | c
Goal: minimize cuts between characters
String: a -> b -> a -> c -> null
Cuts: ^ ^ ^ ^
0 1 2 3