题目

中文

image.png

英文

题解

第一次 2020-10-31

依然是哈希表,但是如何进行映射呢。
已经告知是小写字母 所以直接令key值为ASCII码值,但是会出现问题。
所以看另一种方式。

先遍历strs,对每个string进行排序,异位词的排序结果是一样的,在map中的key值也就一样,然后在map中添加对应的vector,再将vector逐个添加到res中

  1. class Solution {
  2. public:
  3. vector<vector<string>> groupAnagrams(vector<string>& strs) {
  4. vector<vector<string>> res;
  5. unordered_map <string,vector<string> > m;
  6. for(string& s : strs)
  7. {
  8. string t = s;
  9. sort(t.begin(),t.end());
  10. m[t].push_back(s); //t为单词的按顺序排列,作为key值,m[t]则为该单词的异位词构成的vector,作为value值
  11. }
  12. for(auto& n : m) //n为键和值组成的pair
  13. res.push_back(n.second);
  14. return res;
  15. }
  16. };

image.png
问题:哈希表还是有一丝迷惑,
下次再使用质数表试一次。