49.字母异位词分组

Posted lanpang9661

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了49.字母异位词分组相关的知识,希望对你有一定的参考价值。

2020-06-18
字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
技术图片
题解:
思路1:排序+哈希表
var groupAnagrams = function (strs) {
  // hash表存的是有哪些组合的单词出现 i是出现时候插入到result数组中的下标
  let hash = {}, i = 0, sortItem; 
  let result = []; 
  strs.forEach(item => {
    sortItem = item;
    sortItem = sortItem.split(‘‘);
    // 每一项单词打算排序再组合起来 例如 eat => aet  tea => aet...
    sortItem = sortItem.sort().join(‘‘);
    // 判断hash中是否存了重组单词的下标 如果存了说明出现过
    if (hash[sortItem] >= 0) {
      result[hash[sortItem]].push(item); // 在result的对应下标中push这一个单词
    } else { // 如果hash中还没存这个单词重组后的 说明第一次出现
      hash[sortItem] = i; // 将这个单词重组后的词作为key存入hash中 值为存入result的下标i
      result[i] = [item]; // 在下标为i的地方创建新数组存这个单词
      ++i; // 每出现一个新的次 下标+1 方便存下一个新出现的词
    }
  });
  return result;
};

 

以上是关于49.字母异位词分组的主要内容,如果未能解决你的问题,请参考以下文章

49. 字母异位词分组

49.字母异位词分组

49. 字母异位词分组

LeetCode 49: 字母异位词分组Group Anagrams

LeetCode 49. 字母异位词分组(Group Anagrams)

257.LeetCode | 49. 字母异位词分组