美文网首页
49.(map)Group Anagrams

49.(map)Group Anagrams

作者: Ching_Lee | 来源:发表于2018-03-25 16:44 被阅读0次

思想:
将每个字符串转成数组进行sort,将sort得到的结果作为key值,value值就是相应的使用这些字符的字符串构成的数组。

/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    //定义一个map,key是排序的str值,value是数组
    let map=new Map();
    //遍历数组
    strs.forEach(function(item,index){
        //将字符串转成数组进行排序,排序完又转成字符串
        let itemsort=item.split('').sort().join('');
        //如果map里面没有这个值,就创建map中响应的键值对
        if(!map.has(itemsort)){
            map.set(itemsort,[]); 
        }
           map.get(itemsort).push(item);  
    });
    let result=[];
    //然后将所有的value数组放到大数组中
    map.forEach((item,index,mapobj)=>{
        //每一组使用相同字母的字符串排序
        item.sort();
        result.push(item);
    })
    //整个大数组排序
    result.sort(function(arr1,arr2){
        return arr1.length-arr2.length;
    })
    return result;
};

相关文章

网友评论

      本文标题:49.(map)Group Anagrams

      本文链接:https://www.haomeiwen.com/subject/jztkcftx.html