Design a data structure that supports the following two operations:
search(word) can search a literal word or a regular expression string containing only letters a-z or .. A . means it can represent any one letter.
search("pad") -> false
search("bad") -> true
search(".ad") -> true
search("b..") -> true
You may assume that all words are consist of lowercase letters a-z.