classWordDistance { private: unordered_map<string, vector<int>> dic; public: WordDistance(vector<string> words) { for (int i = 0; i < words.size(); ++i) { dic[words[i]].push_back(i); } } intshortest(string word1, string word2){ int ret = INT_MAX; for (auto item1 : dic[word1]) { for (auto item2 : dic[word2]) { ret = min(abs(item1 - item2), ret); } } return ret; } };
/** * Your WordDistance object will be instantiated and called as such: * WordDistance obj = new WordDistance(words); * int param_1 = obj.shortest(word1,word2); */