LeetCode 49. Group Anagrams 時間複雜度(O(k*n))
阿新 • • 發佈:2018-12-11
時間複雜度(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; } };