Class MagicDictionary

java.lang.Object
g0601_0700.s0676_implement_magic_dictionary.MagicDictionary

public class MagicDictionary extends Object
676 - Implement Magic Dictionary\. Medium Design a data structure that is initialized with a list of **different** words. Provided a string, you should determine if you can change exactly one character in this string to match any word in the data structure. Implement the `MagicDictionary` class: * `MagicDictionary()` Initializes the object. * `void buildDict(String[] dictionary)` Sets the data structure with an array of distinct strings `dictionary`. * `bool search(String searchWord)` Returns `true` if you can change **exactly one character** in `searchWord` to match any string in the data structure, otherwise returns `false`. **Example 1:** **Input** ["MagicDictionary", "buildDict", "search", "search", "search", "search"] [ [], [["hello", "leetcode"]], ["hello"], ["hhllo"], ["hell"], ["leetcoded"]] **Output:** [null, null, false, true, false, false] **Explanation:** MagicDictionary magicDictionary = new MagicDictionary(); magicDictionary.buildDict(["hello", "leetcode"]); magicDictionary.search("hello"); // return False magicDictionary.search("hhllo"); // We can change the second 'h' to 'e' to match "hello" so we return True magicDictionary.search("hell"); // return False magicDictionary.search("leetcoded"); // return False **Constraints:** * `1 <= dictionary.length <= 100` * `1 <= dictionary[i].length <= 100` * `dictionary[i]` consists of only lower-case English letters. * All the strings in `dictionary` are **distinct**. * `1 <= searchWord.length <= 100` * `searchWord` consists of only lower-case English letters. * `buildDict` will be called only once before `search`. * At most `100` calls will be made to `search`.
  • Constructor Details

    • MagicDictionary

      public MagicDictionary()
  • Method Details

    • buildDict

      public void buildDict(String[] dictionary)
    • search

      public boolean search(String searchWord)