Beats 98%, easy to understand... simple approach
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass MagicDictionary {\n    vector<string> vec;\npublic:\n    MagicDictionary() {\n        vector<string> vec;\n    }\n    \n    void buildDict(vector<string> dictionary) {\n        vec.assign(dictionary.begin(), dictionary.end());\n    }\n    \n    bool search(string searchWord) {\n        // return true;\n        bool flag= false;\n        for(int i=0; i<vec.size(); i++){\n            if(searchWord.size() != vec[i].size()) continue;\n            else{\n                int cnt=0;\n                for(int j=0; j<vec[i].size(); j++){\n                    if(searchWord[j]!=vec[i][j]) cnt++;\n                }\n                if(cnt==1) return true;\n            }\n        }\n        return false;\n    }\n};\n\n/**\n * Your MagicDictionary object will be instantiated and called as such:\n * MagicDictionary* obj = new MagicDictionary();\n * obj->buildDict(dictionary);\n * bool param_2 = obj->search(searchWord);\n */\n```
['Array', 'Hash Table', 'String', 'Depth-First Search', 'Design', 'Trie', 'C++']