【LeetCode|Hot100】No:2字母异位词分组

部署运行你感兴趣的模型镜像

注:

本系列文章仅是作者自己学习过程中记录的笔记,是初学python用于算法求解的过程,会含有很多对于python的个人注解,用于学习。求职中解算法,我打算使用Python来进行解答,不知是否可不可以,希望能得到大佬的建议,轻喷。

目录

注:

题目:

排序法:

哈希表法:

题目:

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

示例 1:

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

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

排序法:

利用哈希表Key-Value,其中Key是:已经排过序的字母序列;Value:则是各字母异位词的列表集合

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        if len(strs)<2
            return [strs]
        result={}
        for s in strs:
            temp=''.join(sorted(s))
            result[temp]=result.get(temp,[])+[s]
        return list(result.values())

#-> List[List[str]]:表示返回值是一个列表,它的列表元素是字符串元素的列表。
#result={}:表示生成空字典:注意字典Key可以是元祖,但不能是列表,因为列表可变,而元组与字典同样是不可变型
#' '.join():在字符串后新添一个字符串元素,利用' '或','来进行分割
#sorted():将字符串元素进行排序,生成新的升序列表。例如:sorted(“cba”)-》[a, b ,c]
#result[temp]:将新的升序列表作为键
#.get(temp,[]):用于获取字典中某个键 temp 对应的值。如果该键不存在,返回一个空列表 []。
#.values():返回字典中的所有值

哈希表法:

利用哈希表Key-Value,同样是找各组词中的相关联的地方:此时利用的相同点是各组词的字母所组成的代码是相同的。

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        if len(strs)<2:
            return [strs]
        result= {}
        for s in strs:
            count_table=[0]*26
            for c in s:
                count_table[ord(c)-ord('a')]+=1
            key=tuple(count_table)
            result[key]=result.get(key,[])+[s]
        return list(result.values())

#ord():转换成unicode整数
#使用 {} 来创建字典。  使用[]来访问或修改字典中某个键对应的值。

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值