Mental Model
We want to split a string into parts where each part is a palindrome, using the fewest cuts possible. We remember which parts are palindromes and build up the answer step by step.
Analogy: Imagine cutting a ribbon into pieces so that each piece is a perfect mirror image of itself. You want to make as few cuts as possible to get all mirror pieces.
s = "abac" Indices: 0 1 2 3 Cuts: between indices Initial: a|b|a|c Possible: abac (not pal) -> a|b|a|c (3 cuts) or aba|c (1 cut)
