力扣:49. 字母异位词分组(Python3)

这篇具有很好参考价值的文章主要介绍了力扣:49. 字母异位词分组(Python3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

来源:力扣(LeetCode)
链接:力扣

示例:

示例 1:

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


示例 2:

输入:strs = [""]
输出:[[""]]


示例 3:

输入:strs = ["a"]
输出:[["a"]]

解法:

首先将输入的每个单词根据字母顺序排序,转为元组,因为元组是可哈希的,接着将所有排序后的单词转为集合,因为用set函数转,set只接收可哈希对象,所以之前用元组。因为每个单词已根据字母顺序排过序,所以单词异位词此时是一样的,使用集合去重,然后转为列表。设结果存放在result,result初始化为二维列表,每个元素是空列表,元素个数为集合长度。然后开始往result中加入结果,遍历strs,将每个单词根据字母顺序排序,然后去列表中查找所在位置,因为要使用index内置函数,所以上面将集合转为列表。得到列表下标后将原单词加入result对应下标的列表中。

知识点:

1.可哈希:int、float、str、tuple是可以哈希的,list、set、dict是不可哈希的。

2.tuple(iterable):iterable是序列,集合或迭代器对象,创建一个元组对象。文章来源地址https://www.toymoban.com/news/detail-624223.html

代码:

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        list1 = list(set(map(lambda x: tuple(sorted(x)), strs)))
        result = [[] for _ in range(len(list1))]
        for index, word in enumerate(list(map(sorted, strs))):
            result[list1.index(tuple(word))].append(strs[index])
        return result

到了这里,关于力扣:49. 字母异位词分组(Python3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Golang | Leetcode Golang题解之第49题字母异位词分组

    题目: 题解:

    2024年04月26日
    浏览(36)
  • 力扣每日一题49:字母异位词分组

    给你一个字符串数组,请你将  字母异位词  组合在一起。可以按任意顺序返回结果列表。 字母异位词  是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 示例 2: 示例 3: 提示: 1 = strs.length = 104 0 = strs[i].length = 100 strs[i]  仅包含小写字母 通过次数 542.1K 提交次数

    2024年02月07日
    浏览(31)
  • leetcode热题100. 字母异位词分组

    Problem: 49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“nat”

    2024年02月19日
    浏览(28)
  • LeetCode49.字母异味词分组

     我一开始的思路就是用1个hashmapInteger,ListString,Integer存的的是字符串所有字母ASCLL值的和,List里面放异位字符串,但是不是异位的字符串的ascll值也可能相同比如acd和abe,所以这个hashmap只能降低一点时间复杂度我还是要写一个方法来判断是不是异位字符串,就在我写的时候我

    2024年02月12日
    浏览(29)
  • 【算法题】49. 字母异位词分组

    给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs = [\\\"eat\\\", \\\"tea\\\", \\\"tan\\\", \\\"ate\\\", \\\"nat\\\", \\\"bat\\\"] 输出: [[\\\"bat\\\"],[\\\"nat\\\",\\\"tan\\\"],[\\\"ate\\\",\\\"eat\\\",\\\"tea\\\"]] 示例 2: 输入: strs = [\\\"\\\"] 输出:

    2024年01月22日
    浏览(28)
  • 力扣-字母异位词分组

    字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例1: 示例2: 示例3: 解题思路:

    2024年01月25日
    浏览(33)
  • python字母异位词分组

    给你一个字符串数组,请你将  字母异位词  组合在一起。可以按任意顺序返回结果列表。 字母异位词  是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 示例 2: 示例 3: 提示: 1 = strs.length = 104 0 = strs[i].length = 100 strs[i]  仅包含小写字母  

    2024年01月21日
    浏览(31)
  • Python算法题集_字母异位词分组

    本文为Python算法题集之一的代码示例 题目49:字母异位词分组 说明:给你一个字符串数组,请你将 字母异位词 组合在一起,可以按任意顺序返回结果列表 字母异位词 :是由重新排列原单词所有字母得到的新单词 使用同步数组 list 和检索集合 set 使用同步数组 list 和结果数

    2024年01月20日
    浏览(30)
  • 【leetcode】242. 有效的字母异位词(easy)

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 思路: 先比较两字符串长度是否相同,如果不同直接返回 false 。 创建两个HashMap; 分别遍历两个字符串中的字符 char a = c

    2024年02月13日
    浏览(31)
  • 力扣(Leetcode)——python3

    目录 动态规划 70、爬楼梯 198、打家劫舍 213、打家劫舍Ⅱ  509、斐波那契数 740、删除并获得点数 746、使用最小花费爬楼梯 1137、第N个泰波那契序列 Dynamic Programming 递归+迭代 力扣 https://leetcode.cn/problems/jump-game-ii/ 给你一个非负整数数组 nums ,你最初位于数组的第一个位置。

    2024年02月03日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包