Java  easy, no tries and hashes, beats 99%
I am not familiar with advanced data structures, but it seems we can solve it without them:\n\nclass MagicDictionary {\n    private String[] data;\n\n    public
I am not familiar with advanced data structures, but it seems we can solve it without them:\n```\nclass MagicDictionary {\n    private String[] data;\n\n    public void buildDict(String[] dictionary) {\n        this.data = dictionary;\n    }\n\n    public boolean search(String searchWord) {\n        for (String element : data) {\n            if (onlyOneCharDifferent(element, searchWord)) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    private boolean onlyOneCharDifferent(String element, String searchWord) {\n        if (element.length() != searchWord.length()) {\n            return false;\n        }\n\n        boolean onlyOneCharDifferent = false;\n\n        for (int i = 0; i < element.length(); i++) {\n            boolean differentChars = element.charAt(i) != searchWord.charAt(i);\n\n            if (differentChars && !onlyOneCharDifferent) {\n                onlyOneCharDifferent = true;\n            } else if (differentChars) {\n                onlyOneCharDifferent = false;\n                break;\n            }\n        }\n\n        return onlyOneCharDifferent;\n    }\n}\n```
['Array', 'Java']