1. 程式人生 > >LeetCode 49. Group Anagrams 時間複雜度(O(k*n))

LeetCode 49. Group Anagrams 時間複雜度(O(k*n))

時間複雜度(O( k*n))

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        unordered_map<string,int> record;
        vector<vector<string>> result;
        for(auto str : strs){
            vector<int> chsCount(26,0);
            for(auto ch:str)
                chsCount[ch-'a']+=1;
            string tmp_str="";
            for(int i=0;i<26;++i)
                if(chsCount[i])  tmp_str=tmp_str+to_string(i)+"="+to_string(chsCount[i])+",";
            unordered_map<string,int>::iterator iter = record.find(tmp_str);
            if(iter!=record.end())
                result[iter->second].push_back(str);
            else{
                record[tmp_str]=result.size();
                vector<string> result_one;
                result_one.push_back(str);
                result.push_back(result_one);
            }
        }
        return result;
    }
};