LeetCode:49. 字母異位詞分組
阿新 • • 發佈:2018-12-04
1、題目描述
給定一個字串陣列,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字串。
示例:
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"], 輸出: [ ["ate","eat","tea"], ["nat","tan"], ["bat"] ]
說明:
- 所有輸入均為小寫字母。
- 不考慮答案輸出的順序。
2、題解
2.1、解法一
原理:使用每個字串排序,然後作為字典的key,源字串作為value。
class Solution: def groupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] """ dic = {} for i in strs: k = tuple(sorted(i)) if k not in dic: dic[k] = [] dic[k].append(i) return [dic[k] for k in dic]