Core Skill
Split input into valid groups
Problems
Palindrome Partitioning
Pattern
for j in range(i, len(s)): if is_valid(s[i:j]): path.append(...) dfs(j+1) path.pop()
Concept
decision = where to cut