LeetCode49字母异位分组

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

示例:

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

说明:

  • 所有输入均为小写字母。
  • 不考虑答案输出的顺序

思路 

首先把字符串排序,如果排序的字符串相同,就放到到一起。

class Solution:
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        res = {}
        for item in strs:
            k = ''.join(sorted(item))  # 字符串排序
            if k not in res:  # 判断是否存在
                res[k] = []
            res[k].append(item)  # 相同字符串放到同一个字典 k中
        return [res[x] for x in res]  # 输出结果


strs = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
try1 = Solution()
print(try1.groupAnagrams(strs))


猜你喜欢

转载自blog.csdn.net/qq_35654080/article/details/82721632
今日推荐