Design Add and Search Words Data Structure

Design a data structure that supports adding words and searching words with '.' wildcard characters. Pattern focus: Wildcard Search with Trie (Add and Search Words). The wildcard branch must explore all possible matching children only when necessary.

Input Format

operations = add/search commands, values = words or patterns

Output Format

boolean results for each search command in order

Constraints

  • 1 <= operations.length <= 10^5
  • Words contain only lowercase English letters and '.' in search queries.

Examples

Example 1:

Input:

operations = ["add","add","search","search","search","search"]
values = ["bad","dad","pad","bad",".ad","b.."]

Output:

[false,true,true,true]

Explanation:

The wildcard search should match any single character in place of '.'.

Example 2:

Input:

operations = ["search"]
values = ["."]

Output:

[false]

Explanation:

Searching before any insert should fail.

Example 3:

Input:

operations = ["add","add","search","search","search","search"]
values = ["at","and","a","a.",".n","b."]

Output:

[false,true,false,false]

Explanation:

Exact matches, wildcard matches, and failing patterns can coexist in the same query list.

Loading...
Design Add and Search Words Data Structure