力扣刷题Python笔记:字母异位词分组

题目

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

力扣刷题Python笔记:字母异位词分组_第1张图片
来源:力扣(LeetCode)

Python解法

字典解法

一开始本来打算用暴力解法解出来,写了一个小时程序,每次提交都有不同的错误,需要考虑的情况太多了,于是看了题解,发现别人的代码简单易懂,膜拜!

具体的解题思路如下:
①创建一个字典 result;
②对 strs 中的每一个元素排序并转换成元组,作为字典的键;
③如果字符串的字符相同,只是顺序不同,那么它将会被放到同一个键里;
④最终返回字典的值。

代码如下:

def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
    result = {
     }
    for stri in strs:
        key = tuple(sorted(stri))
        result[key] = result.get(key, []) + [stri]
    return list(result.values())

你可能感兴趣的:(力扣python刷题,算法)