Class 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 Detail

      • MagicDictionary

        public MagicDictionary()
    • Method Detail

      • buildDict

        public void buildDict​(String[] dictionary)
      • search

        public boolean search​(String searchWord)