字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]

输出: [["a"]]

解法:

js 复制代码
/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    if(strs.length===1) return [strs]
    const strsList = strs.map(str=>str.split('').sort().join())
    const map = {}
    for(let i=0;i<strs.length;i++){
        let key = strsList[i],value = strs[i]
        if(map[key]){
            map[key].push(value)
        } else {
            map[key] = [value]
        }
    }
    return Object.values(map)
};
相关推荐
董董灿是个攻城狮6 分钟前
AI 视觉连载7:传统 CV 之高斯滤波实战
算法
前端Hardy5 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
yuki_uix5 小时前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
全栈老石6 小时前
手写无限画布4 —— 从视觉图元到元数据对象
前端·javascript·canvas
爱理财的程序媛6 小时前
openclaw 盯盘实践
算法
Leon7 小时前
新手引导 intro.js 的使用
前端·javascript·vue.js
牛奶8 小时前
JS随笔:浏览器 API(DOM 与 BOM)
前端·javascript·面试
牛奶8 小时前
JS随笔:异步编程与事件循环
前端·javascript·面试
牛奶8 小时前
JS随笔:数据结构与集合
前端·javascript·面试