
难度:Meidum
将字母映射到长度为26的数组上,每一位表示出现的次数。如果是相同字母异序词,则映射出的数组一致。该数组用字符串表示出来会更方便。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> ret; unordered_map<string,vector<string>> m; for(int i = 0; i < strs.size(); i++) { string s(26,'0'); string cur_s = strs[i]; for(int j = 0; j < cur_s.size(); j++) { char c = cur_s[j]; s[c-'a']++; } m[s].push_back(cur_s); } for(auto &entry:m) { ret.push_back(entry.second); } return ret; } };
|
近期评论