Implement a trie with insert, search, and startsWith methods.
Design a data structure that supports adding words and searching with '.' wildcards that match any character.
Given a board of characters and a list of words, find all words that can be formed by adjacent cells.
Given a list of words, find the longest word that can be built one character at a time by other words in the list.