字母的异分位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

leetcode-49:

      //字母异位词分组
        /*
        *
        for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.
        与forEach()不同的是,它可以正确响应break、continue和return语句
        for-of循环不支持普通对象,但如果你想迭代一个对象的属性,
        你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法:
        */
        function angontran(strs) {
            if(strs.length ===0){
                return []
            }
            let map = new Map()
            for(const str of strs){
                let characte = new Array(26).fill(0)
                for(let i=0;i<str.length;i++){
                    const ascii  = str.charCodeAt(i)-97
                    characte[ascii]++
                }
                const key = characte.join(",")
                if(map,get(key)){
                    map.set(key,[...map.get(key),str])
                }else{
                    map.set(key,str)
                }
            }
            let res = [] //for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。
                        //for of遍历的只是数组内的元素,而不包括数组的原型属性method和索引name
            for(let arr of map){ //for of 遍历map 类型
                res.push(arr[1])
            }
            return res
        } 

  

posted @ 2021-07-11 10:25  TangTaue  阅读(62)  评论(0编辑  收藏  举报