赞
踩
题目:
思路:核心难点是如何比较字母异位词-----利用map
取出第一个字符串"eat",变成数组排序再转换为字符串"aet",作为map的第一个键;判断map中是否有该键对应的值(数组),如果有把遍历到的该字符串压入数组中。
每次都对遍历的字符串重新排序,排序相同的字符串存放在同一数组中。
map(排序后的字符串,数组)
- var groupAnagrams = function(strs) {
- let map = new Map();
- for(let str of strs){
- let array = Array.from(str);
- let key = array.sort().toString();
- let list = map.get(key) ? map.get(key) : new Array();
- list.push(str);
- map.set(key, list);
- }
- return Array.from(map.values());
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。