Optimal Algorithmic Approach
Array-of-26 children per node for lowercase English letters; HashMap for arbitrary chars.
Core Invariants & Edge Cases
- Each node has a children array (or HashMap) and an isEnd flag
- insert traverses/creates nodes for each character
- search requires reaching a node with isEnd=true; startsWith just requires reaching the last char node