Insert and Search Words with Wildcards
Medium
Design and implement a data structure that supports the following operations:
insert(word: str) -> None: Inserts a word into the data structure.search(word: str) -> bool: Returns true if a word exists in the data structure and false if not. The word may contain wildcards ('.') that can represent any letter.
Example:
Input: [
insert('band'),
insert('rat'),
search('ra.'),
search('b..'),
insert('ran'),
search('.an')
]
Output: [True, False, True]
Explanation:
insert("band") # data structure has: "band"
insert("rat") # data structure has: "band" and "rat"
search("ra.") # "ra." matches "rat": return True
search("b..") # no three-letter word starting with ‘b' in the
# data structure: return False
insert("ran") # data structure has: "band", "rat", and "ran"
search(".an") # ".an" matches "ran": return True
Constraints:
- Words will only contain lowercase English letters and
'.'characters.