淘先锋技术网

首页 1 2 3 4 5 6 7

Given an array of strings, group anagrams together.

Example:

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

Note:

  • All inputs will be in lowercase.
  • The order of your output does not matter.

LeetCode:链接

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

首先对所给的字符串列表(数组)进行排序,即对其中的每一个字符串都进行排序,然后用hash map判断哪些字符串是归位一组的。 返回字典的value值即可。

class Solution(object):
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        mydict = {}
        for str in strs:
            # 对str进行排序
            str_ = ''.join(sorted(str))
            if str_ in mydict:
                mydict[str_].append(str)
            # 定义的是列表形式
            else:
                mydict[str_] = [str]
        # 返回的是value值
        return mydict.values()