[C++] Try all combinations || very easy to understand
\nclass MagicDictionary {\npublic:\n    unordered_set<string>st;\n    MagicDictionary() {\n        st.clear();\n    }\n    \n    void buildDict(vector<string> a
```\nclass MagicDictionary {\npublic:\n    unordered_set<string>st;\n    MagicDictionary() {\n        st.clear();\n    }\n    \n    void buildDict(vector<string> arr) {\n        for(int i=0;i<arr.size();i++)\n        {\n            st.insert(arr[i]);\n        }\n    }\n    \n    bool search(string s) {\n        for(int i=0;i<s.length();i++)\n        {\n            string temp=s;\n            for(int k=0;k<26;k++)\n            {\n                char curr_char=char(k+\'a\');\n                if(curr_char!=s[i])\n                {\n                    temp[i]=char(k+\'a\');\n                    if(st.find(temp)!=st.end())\n                    {\n                        return true;\n                    }\n                }\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```
['C', 'C++']