class Solution {
public:    
    /**
     * @param strs: A list of strings
     * @return: A list of strings
     */
    vector<string> anagrams(vector<string> &strs) {
        // write your code here
        vector<string> results;
        int size = strs.size();
        if (size == 0) {
            return results;
        }

        unordered_map<string, int> map;

        for (int i = 0; i < size; i++) {
            string elem = strs[i];
            sort(elem.begin(), elem.end());
            if (map.find(elem) == map.end()) {
                map.insert({elem, 0});
            }
            map[elem]++;
        }

        for (int j = 0; j < size; j++) {
            string elem1 = strs[j];
            sort(elem1.begin(), elem1.end());
            if (map.find(elem1) != map.end() && map[elem1] > 1) {
                results.push_back(strs[j]);
            }
        }

        return results;
    }
};

results matching ""

    No results matching ""