【LeetCode】49. 字母异位词分组

1 问题

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

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

示例 1:

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

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

示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]

输出: [["a"]]

2 答案

这题直接不会

官方解,使用字典记录,其中字典的键,必须是不可变类型,所以用tuple。

python 复制代码
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        dict = {}
        for s in strs:
            key = tuple(sorted(s))  # 字典的键用tuple
            dict[key] = dict.get(key,[]) + [s]  # get(key,[]) get 不到则返回[]
        return list(dict.values())
相关推荐
ValhallaCoder1 天前
Day33-动态规划
数据结构·python·算法·动态规划
only-code1 天前
100% 本地 MCP 客户端 + SQLite 服务器(LlamaIndex + Ollama + Qwen2.5)
python·mcp
Kt&Rs1 天前
11.11 LeetCode 题目汇总与解题思路
算法·leetcode·哈希算法
程序员爱钓鱼1 天前
Python编程实战 - Python实用工具与库 - 爬虫防封与代理机制
后端·python·ipython
py有趣1 天前
LeetCode算法学习之有效的字母异位词
学习·算法·leetcode
程序员爱钓鱼1 天前
Python编程实战 - Python实用工具与库 - 操作Excel:openpyxl / pandas
后端·python·面试
猫头虎1 天前
Rust评测案例:Rust、Java、Python、Go、C++ 实现五大排序算法的执行时间效率比较(基于 OnlineGDB 平台)
java·开发语言·c++·python·golang·rust·排序算法
恒风52121 天前
实时显示鼠标的坐标值,注意事件的(event)
python·信息技术类·对口高考
LeonDL1681 天前
基于YOLO11深度学习的电梯内车辆识别系统【Python源码+Pyqt5界面+数据集+安装使用教程+训练代码】【附下载链接】
人工智能·python·深度学习·pyqt5·yolo数据集·yolo11深度学习·电梯内车辆识别系统
拾心211 天前
【云运维】Python基础(二)
python