首页 > 其他分享 >字母异位词分组【哈希】

字母异位词分组【哈希】

时间:2024-01-08 16:37:49浏览次数:32  
标签:hash ss 异位 复杂度 List 分组 hashTable 哈希 ans


Problem: 49. 字母异位词分组


文章目录

  • 思路
  • 解题方法
  • 复杂度
  • Code


思路

hash

解题方法

对于每一个字符串,都按字符从小打到进行排序,然后用hash去存,如果排序后的结果在hash表里面存在的话,那么就只需要把这个字符串加入进行;如果不存在,就新建一个键值对就可以了。关键就是字符串没有排序,所以要先转换成列表,然后再jion到一个空串里面。

复杂度

时间复杂度:

添加时间复杂度, 示例: 字母异位词分组【哈希】_字符串

空间复杂度:

添加空间复杂度, 示例: 字母异位词分组【哈希】_空间复杂度_02

Code

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        hashTable = dict()
        for s in strs:
            l = list(s)
            l.sort()
            ss = "".join(l)
            if ss in hashTable:
                hashTable[ss].append(s)
            else:
                hashTable[ss] = [s]
        ans = []
        for s in hashTable:
            ans.append(hashTable[s])
        return ans


标签:hash,ss,异位,复杂度,List,分组,hashTable,哈希,ans
From: https://blog.51cto.com/u_15714381/9146664

相关文章

  • 两数之和【哈希】
    Problem:1.两数之和文章目录思路解题方法复杂度Code思路n方可以暴力,也可以用hash去降低时间复杂度。解题方法遍历列表,每个数都看一下是否它的补是否再hash表里面,在就说明找到了,不在就把它放进去,然后继续遍历。复杂度时间复杂度:添加时间复杂度,示例:空间复杂度:添加空间复杂度......
  • 字符串和哈希表的基本用法总结
    2287.重排字符形成目标字符串解决代码classSolution{publicintrearrangeCharacters(Strings,Stringtarget){Map<Character,Integer>sCounts=newHashMap<Character,Integer>();Map<Character,Integer>targetCounts=newHashMap&......
  • LiveGBS流媒体平台GB/T28181功能-分屏展示分组管理右击选择通道支持只看已选只看未选
    LiveGBS功能国标级联对接海康大华宇视华为等上级平台选择通道支持只看已选只看未选1、分组管理2、选择通道2.1、只看已选2.2、只看未选3、搭建GB28181视频直播平台1、分组管理LiveGBS可以作为下级平台,级联到第三方国标平台,详见:LiveGBS国标GB/T28181流媒体平台功能-作为下级国标平......
  • JAVA - stream流汇总,求和,分组等
    求和(Sum)示例代码如下所示:List<Integer>numbers=Arrays.asList(1,2,3,4,5);intsum=numbers.stream().mapToInt(Integer::valueOf).sum();1.System.out.println("数字列表的和为:"+sum);2.分组(Grouping)示例代码如下所示:List<String>fruits=Arrays.asList(&qu......
  • 网络攻防技术——哈希碰撞
    实验3:MD5碰撞试验实验内容:本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务:使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;参考Lab3_task2.c的代码,生成两个MD5值相同但......
  • 哈希冲突
    我们先模拟一下,其实题目就是要我们从\(y\)这个位置开始跳,每次跳\(x\)步,然后把每次跳到的数的和加起来就是最终的答案我们发现当\(x\)比较大的时候是可以暴力的,但是比较小的时候就不行了这时就有一个套路了,我们找出一个分界点,比这个分界点大的时候我们暴力否则使用其他方法那么......
  • 第六十天 正反向、聚合、分组、F与Q、ORM查询
    昨日内容查询常见关键字1.filter()2.all()3.get()4.first()5.last()6.values()7.values_list()8.order_by()9.distinct()10.exclude()11.exists()12.count()13.reverse()14.raw()神奇的双下划线查询__gt__gte__lt__lte__in__range__contains__icontains......
  • Asp.net WebApi Swagger Tag 标记分组归纳显示Api接口路由
    官方文档说明地址https://swagger.io/docs/specification/2-0/grouping-operations-with-tags/创建一个自定义的特性类publicclassControllerGroupAttribute:Attribute{publicControllerGroupAttribute(stringgroupName){if......
  • 深入浅出一致性哈希
    哈希是什么哈希又称散列,是一种计算数据指纹的方法。哈希函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来业务场景常见的业务场景;网站用户请求后,为了性能一般都会加一层缓存。缓存有多个节点,每个节点存储了不同数据。获取数据,先根据数据取模(哈希)找到缓存节点......
  • 哈希集合、哈希表的拉链法实现
    哈希表705.设计哈希集合//拉链法structListNode{intval;structListNode*next;};typedefstruct{structListNode*data;}MyHashSet;//模constinthashSize=1009;MyHashSet*myHashSetCreate(){MyHashSet*myHashSet=(MyHashSet......