Python Simple Solution
Since the input set is small and the character set is finite, it is acceptable to enumerate through all possible combinations and see if the new word exists in 
Since the input set is small and the character set is finite, it is acceptable to enumerate through all possible combinations and see if the new word exists in the dictionary and the time complexity for search is O(k^2) where k is the length of the word.\n\nFunnily enough, the comment in the skeleton for the `search` method already hints at using a "trie" but it's not needed to pass the contest.\n\n*- Yangshun*\n\n```\nclass MagicDictionary(object):\n\n    def __init__(self):\n        self.words = None\n\n    def buildDict(self, dict):\n        self.words = set(dict)\n\n    def search(self, word):\n        chars = set(word)\n        for index, char in enumerate(word):\n            for i in range(26):\n                sub = chr(ord('a') + i)\n                if sub == char:\n                    continue\n                new_word = word[:index] + sub + word[index + 1:]\n                if new_word in self.words:\n                    return True\n        return False\n```
[]