当前位置: 首页 > news >正文

LeetCode(python)——49.字母异位词分组

题目

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

 

示例 1:

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

输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
输出: [[“bat”],[“net”,“then”],[“and”,“EAT”,“tia”]]

解释:

  • 在 strs 中没有字符串可以通过重新排列来形成 "bat"
  • 字符串 "nat" 和 "tan" 是字母异位词,因为它们可以重新排列以形成彼此。
  • 字符串 "ate" ,"eat" 和 "tea" 是字母异位词,因为它们可以重新排列以形成彼此。

示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]

输出: [["a"]]

提示:

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

思路

解法一:

对字符串数组中的每个字符串排序,以这个排序作为Key值,当两个字符串的排序相同时,存进同一个列表

解法二:

计数,互为字母异位词的两个字符串包含的字母相同,故可以将每个字符串中出现的字母次数以字符串的形式表示,作为哈希表的Key值。由于只包含小写字母,故用大小为26的数组即可

代码

解法一

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:mp = collections.defaultdict(list)for st in strs:key = "".join(sorted(st))mp[key].append(st)return list(mp.values())

解法二:

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:mp = collections.defaultdict(list)for st in strs:count = [0] * 26for ch in st:count[ord(ch) - ord("a")] += 1   # ord()可以计算字母的ASIIC码值mp[tuple(count)].append(st)   #数组是可变的,只有将数组变为tuple才能作为哈希的keyreturn list(mp.values())

http://www.dtcms.com/a/572692.html

相关文章:

  • Redis 性能优化与故障排查指南
  • 24.java openCV4.x 入门-Imgproc之轮廓凸包与凹陷检测(形状识别)
  • IDEA 插件推荐
  • 虚拟 DOM(Virtual DOM)的工作原理及其性能优化机制
  • git详细使用教程
  • 北京工程工程建设交易信息网站和城乡建设部网站
  • soular零基础学习,如何通过工作台聚合TikLab所有工具链
  • 建立企业网站电商网站建设开题报告
  • css font-size 的妙用
  • Jenkins安装部署
  • 阿里云 CDN + 静态资源(图片 / JS/CSS)缓存优化
  • 荣耀前端开发面试题及参考答案
  • shtml怎么做网站建设学校网站多钱
  • Navicat 连接 SQL Server 报错 [08001] 超时错误(258)的排查与解决方案
  • Linux 使用 `wait` 函数回收子进程
  • 八股训练营第 8 天 | TCP连接三次握手的过程?TCP连接四次挥手的过程?HTTP的Keep-Alive是什么?
  • 【计算网络学习笔记】网络基础之网络协议栈
  • CyberSecEval 2
  • wordpress 两栏专业seo培训学校
  • 【浏览器CORS问题解决方案】SpringBoot+Vue3前后端全覆盖:浏览器跨域问题的多样化解决方案
  • 论述AI和人类的分工
  • 第四阶段C#通讯开发-6:Socket之UDP
  • 广州建设网站公司简介百度seo排名推广
  • 四自由度机械臂运动学与动力学分析
  • Spring Security 使用
  • Web3开发中的前端、后端与合约:角色定位与协作逻辑
  • 神经网络—— 人工神经网络
  • GroupNet:基于多尺度神经网络的交互推理轨迹预测
  • CANN 自定义算子实战:从智能门禁到工业质检,MindStudio 7.0 落地优化(时延 130ms + 漏检率 3%,代码可复现)
  • RecyclerView Item 点击 长按事件最佳实践(为什么长按要 return true?