最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

前端算法題解leetcode49-字母異位詞分組

 更新時(shí)間:2022年09月23日 10:08:54   作者:前端_奔跑的蝸牛  
這篇文章主要為大家介紹了前端算法leetcode49-字母異位詞分組解題示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目

題目地址

給你一個(gè)字符串?dāng)?shù)組,請(qǐng)你將 字母異位詞 組合在一起??梢园慈我忭樞蚍祷亟Y(jié)果列表。

字母異位詞 是由重新排列源單詞的字母得到的一個(gè)新單詞,所有源單詞中的字母通常恰好只用一次。

示例 1:

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

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

示例 2:

輸入: strs = [""]

輸出: [[""]]

示例 3:

輸入: strs = ["a"]

輸出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 僅包含小寫字母

解題思路

首先我們來(lái)搞懂本題的題意,所謂 字母異位詞 就是一個(gè)單詞通過改變單詞內(nèi)字母的順序可以得到另一個(gè)單詞,那么這兩個(gè)單詞就是字母異位詞,例如 abccbaacb。

接下來(lái)要解決的就是如何判斷單詞互為字母異位詞?

因?yàn)樽帜府愇辉~單詞內(nèi)字母及出現(xiàn)次數(shù)相同,所以我可以把單詞內(nèi)的字母排序,這樣互為字母異位詞的單詞排序后的結(jié)果就是相同的,把排序后結(jié)果相同的單詞的下標(biāo)記錄在一組,這樣互為字母異位詞的單詞就被收集到了一組。

最后遍歷得到的信息,將同組的下標(biāo)對(duì)應(yīng)的單詞放到一個(gè)數(shù)組,再將該數(shù)組插入到結(jié)果數(shù)組,最后返回結(jié)果數(shù)組即可。

代碼實(shí)現(xiàn)

var groupAnagrams = function(strs) {
    let _strs = [...strs]
    const res = []
    const map = new Map()
    for(let i = 0;i<_strs.length;i++){
        let str = _strs[i]
        str = str.split('').sort((a,b) => a.localeCompare(b)).join('')
        if(map.has(str)){
            map.get(str).push(i)
            continue
        }
        map.set(str,[i])
    }
    map.forEach(item => {
        const arr = []
        for(let i = 0;i<item.length;i++){
            arr.push(strs[item[i]])
        }
        res.push(arr)
    })
    return res
}

至此我們就完成了 leetcode-49-字母異位詞分組,更多關(guān)于前端算法字母異位詞分組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

射阳县| 新泰市| 淮阳县| 磐石市| 临沧市| 黄冈市| 通辽市| 江源县| 张北县| 图片| 山阳县| 保定市| 唐海县| 泾阳县| 冀州市| 潞西市| 万州区| 谢通门县| 龙陵县| 沁源县| 揭西县| 望城县| 灵丘县| 西宁市| 彝良县| 鄢陵县| 扶绥县| 东光县| 金川县| 会宁县| 临澧县| 惠水县| 田东县| 兴仁县| 林周县| 承德市| 特克斯县| 奉化市| 新兴县| 辽中县| 门头沟区|