程式語言 - LeetCode - C - 49. Group Anagrams



題目:


解答:

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> r;
        unordered_map<string, vector<string>> q;

        for (auto s : strs) {
            int cnt[26] = { 0 };

            for (auto ch : s) {
                cnt[ch - 'a'] += 1;
            }

            string k;
            for (int i = 0; i < 26; ++i) {
                k += "_";
                k += to_string(cnt[i]);
            }
            q[k].push_back(s);
        }

        for (auto& [k, v] : q) {
            r.push_back(v);
        }

        return r;
    }
};