# 745-prefix-and-suffix-search Try it on leetcode ## Description

Design a special dictionary with some words that searchs the words in it by a prefix and a suffix.

Implement the WordFilter class:

 

Example 1:

Input
["WordFilter", "f"]
[[["apple"]], ["a", "e"]]
Output
[null, 0]

Explanation
WordFilter wordFilter = new WordFilter(["apple"]);
wordFilter.f("a", "e"); // return 0, because the word at index 0 has prefix = "a" and suffix = 'e".

 

Constraints:

## Solution(Python) ```Python def Trie(): return collections.defaultdict(Trie) WEIGHT = False class WordFilter(object): def __init__(self, words): self.trie = Trie() for weight, word in enumerate(words): word += "#" for i in range(len(word)): cur = self.trie cur[WEIGHT] = weight for j in range(i, 2 * len(word) - 1): cur = cur[word[j % len(word)]] cur[WEIGHT] = weight def f(self, prefix, suffix): cur = self.trie for letter in suffix + "#" + prefix: if letter not in cur: return -1 cur = cur[letter] return cur[WEIGHT] ```