题目描述: Given an array of strings, group anagrams together.
For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]Note: All inputs will be in lower-case.
思路: 首先对所给的字符串列表(数组)进行排序,即对其中的每一个字符串都进行排序,这样就可以得到哪些字符串是归位一组的。 接着将字符串列表转换为一个字典,并遍历key值得到最终的列表返回。
AC代码:
class Solution(object): def groupAnagrams(self, strs): """ :type strs: List[str] :rtype: List[List[str]] """ ans, res, ret = [], {}, [] for s in strs: temp = list(s) temp.sort() ans.append("".join(temp)) for i in range(len(ans)): if ans[i] not in res: res[ans[i]] = [] res[ans[i]].append(strs[i]) for key in res: ret.append(res[key]) return ret