Design a data structure that supports adding words and searching with wildcards.
addWord(word): Add a word to the data structure.
search(word): Return true if any word matches. A . can match any single letter.
With addWord("bad"), addWord("dad"), addWord("mad"):
search("pad")returnsfalse(no match).search("bad")returnstrue(exact match).search(".ad")returnstrue(.matches 'b', 'd', or 'm').search("b..")returnstrue(.matches 'a' then 'd').
Constraints: Words contain only lowercase letters. Patterns contain letters and ..