leetcode -- Group Anagrams -- 简单重点

来源:互联网 发布:2015网络歌曲排行榜 编辑:程序博客网 时间:2024/06/05 17:28

https://leetcode.com/problems/anagrams/

ref:http://www.cnblogs.com/zuoyuan/p/3769993.html
这种最直观n^2复杂度问题,要想到hash table。

anagram的意思是:abc,bac,acb就是anagram。即同一段字符串的字母的不同排序。将这些都找出来。这里使用了哈希表,即Python中的dict。针对前面的例子来讲,映射为{abc:abc,bac,acb}。

my code:

class Solution(object):    def groupAnagrams(self, strs):        """        :type strs: List[str]        :rtype: List[List[str]]        """        mydict = {}        for x in strs:            sorted_str = ''.join(sorted(x))#注意这里sorted(x)返回的是一个list            if sorted_str in mydict:                mydict[sorted_str].append(x)            else:                mydict[sorted_str] = [x]        for x in mydict.values(): x.sort()        return mydict.values()
0 0
原创粉丝点击