字母异位词分组
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入: [“eat”, “tea”, “tan”, “ate”, “nat”,“bat”]
输出:
[ [“ate”,“eat”,“tea”], [“nat”,“tan”], [“bat”]]
解题思路
暴力求解
分别遍历数组和数组的每一个元素,将每一个元素按字符串数组表示后进行升序排序,在利用join()内置函数将字符串数组转化为字符串,判断元素内是否有相同的字符串,有,则将原来的字符串形式加入到数组中,无,则初始化一个数组用来存储另一种形式的字符串。
/**
* @param {string[]} strs
* @return {string[][]}
*/
var groupAnagrams = function(strs) {
var res = {}
for(var i=0;i<strs.length;i++){
var s = strs[i].split('').sort().join('')
//排序后字母不相同,则初始化数组为空
if(!res[s]){
res[s] = []
}
res[s].push(strs[i])
}
return Object.values(res)
};