首页 > 其他分享 >49. 字母异位词分组(中)

49. 字母异位词分组(中)

时间:2024-03-01 21:12:29浏览次数:27  
标签:aet 49 strs 异位 分组 tea table eat 字典

目录

题目

  • 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
    字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

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

示例 2:

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

示例 3:

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

题解:字典

  • 首先,循环遍历每一个单词,通过排序建立字典的键。其次,将单词加入字典中:分两种情况,如果没有键在字典中,那么新添加一个列表;如果键在字典中,那么在字典中的该键下加入。最后,返回的是list(字典的值)
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        table = {}#创建一个空字典,strs = ["eat", "tea"]
        for s in strs:#遍历字符串列表 strs
            s_ = "".join(sorted(s))#对当前字符串 s=eat进行排序赋值给s_=aet
            if s_ not in table:#s_ 不在字典 table 中,
                table[s_] = [s]#所以将 s_ 作为键,将 [s] 作为对应的值存入字典 table={'aet': ['eat']}
            else:#当遍历到第二个字符tea时,排序后s_=aet已经在字典 table 中存在
                table[s_].append(s)#将当前字符串 s 追加到对应的值列表中,table = {'aet': ['eat', 'tea']}
        return list(table.values())#遍历完所有的字符串后,返回字典 table 中的值

标签:aet,49,strs,异位,分组,tea,table,eat,字典
From: https://www.cnblogs.com/lushuang55/p/18047950

相关文章

  • golang中员工分组分页获取的一种方案
    在业务中,有一个场景,A系统需要提供一个接口,返回组织架构信息,供B系统入库,即B系统的组织架构是从A系统中同步过来的。这个场景下存在一个小问题,B系统期望A系统按照组织树层序遍历分页返回。这样B系统就不需要担心新增组织时找不到父级组织了。那么A系统要怎么做呢?方案1:在数据库......
  • 深度学习-卷积神经网络-tensorflow的用法-49
    目录1.01_first_graph2.sessionrun3.global_variables_initializer4.InteractiveSession5.get_default_graph6.life_cicycle07linear_regression8.manual_gradient9.auto_diff12.softmax_regression13.convolution14.pooling1.01_first_graphimporttensorflowa......
  • 代码随想录算法训练营第六天|242. 有效的字母异位词
    这个题目还是比较简单的,知道是查表的思路之后,很快就写出来了:classSolution:defisAnagram(self,s:str,t:str)->bool:iflen(s)!=len(t):returnFalsealphabet=[]dict_s={}dict_t={}foriinran......
  • 349. 两个数组的交集C
    /***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/int*intersection(int*nums1,intnums1Size,int*nums2,intnums2Size,int*returnSize){inthash1[1001]={0};inthash2[1001]={0};int*tem=(int*)malloc(sizeof......
  • 洛谷题单指南-二分查找与二分答案-P2249 【深基13.例1】查找
    原题链接:https://www.luogu.com.cn/problem/P2249题意解读:找有序数组中某个数第一次出现的位置,二分模版题,由于是二分板块的第一题,有必要对二分的各种模版进行介绍。解题思路:关于二分的一切:1、二分的本质二分的本质,是通过某种判定把目标范围划分成两个区间二分问题通常有两......
  • 242. 有效的字母异位词 C
    inthash(charc){returnc-'a';}boolisAnagram(char*s,char*t){inta[26]={0};intb[26]={0};inti=0;while(s[i]!=0){a[hash(s[i++])]++;}i=0;while(t[i]!=0){b[hash(t[i++])]++;}f......
  • cf1491h-solution
    CF1491HSolutionlink考虑分块。按照点的编号分块,维护\(b_i\)表示\(i\)往上跳遇到的第一个与\(i\)异块的点。对于散块修改,直接暴力重构整块的\(b\)。重构方式是,如果\(a_i\)与\(i\)异块,则\(b_i\getsa_i\);否则\(b_i\getsb_{a_i}\)。对于整块,打标记维护整体减了多......
  • cf1491e-solution
    CF1491ESolutionlink首先,把一棵大小为\(f_i\)的树切成两棵树只能是切成\(f_{i-1}\)和\(f_{i-2}\)的,而且最多只有两种切的方案。证明考虑分类讨论是否有大小为\(f_{i-1}\)的子树(以\(1\)为根)即可,感性理解就好。接下来你可以选择每次暴力通过两种割边方案递归检验,但是......
  • day43 动态规划part5 代码随想录算法训练营 494. 目标和
    题目:494.目标和我的感悟:加油!理解难点:dp的几种方法的应用记住dp[j]+=dp[j-nums[i]]听课笔记:代码示例:classSolution:deffindTargetSumWays(self,nums:List[int],target:int)->int:total_sum=sum(nums)ifabs(target)>total_sum:......
  • day43 动态规划part5 代码随想录算法训练营 1049. 最后一块石头的重量 II
    题目:1049.最后一块石头的重量II我的感悟:复习了昨天的模板是不一样,今天这个我推出来了。哈哈 理解难点:按照昨天的思路,dp[target]里面是能凑出来的最大值。a是另外能凑出来的和。diff是两者的差。听课笔记:我自己先写出的代码:classSolution:deflastStoneW......