49. Group Anagrams 【M】【47】
2016-04-29 17:30
260 查看
Given an array of strings, group anagrams together.
For example, given:
Return:
Note:
For the return value, each inner list's elements must follow the lexicographic order.
All inputs will be in lower-case.
Subscribe to see which companies asked this question
本来写成下面的,超时了
这里面有两个优化,一个是使用get方法,可以免去判断
一个是,上来就相对strs进行排序
还有一个是,不要用set了,直接对每个字符串进行一个排序,这样就进行了一个归一化了
For example, given:
["eat", "tea", "tan", "ate", "nat", "bat"],
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note:
For the return value, each inner list's elements must follow the lexicographic order.
All inputs will be in lower-case.
Subscribe to see which companies asked this question
本来写成下面的,超时了
这里面有两个优化,一个是使用get方法,可以免去判断
一个是,上来就相对strs进行排序
还有一个是,不要用set了,直接对每个字符串进行一个排序,这样就进行了一个归一化了
class Solution(object): def groupAnagrams(self, strs): dic = {} strs.sort() for i in strs: ii = ''.join(sorted(i)) dic[ii] = dic.get(ii, []) + [i] ''' if ii in keys: dic[ii].append(i) else: keys.append(ii) dic[ii] = [i] ''' res = list(dic.values()) return res
相关文章推荐
- 机器学习常见算法分类汇总
- 给QT不规则窗口添加阴影
- maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5
- The summary of Java
- 在已经安装cocoa pods的情况下,打开终端给指定工程配置第三方
- pktgen 基本使用
- activiti 设置变量(四)
- 知问前端——创建注册表单
- Vim插件:NERDtree(在Windows下)
- NYOJ 366 D的小L
- UCOSIII软件定时器(待更)
- 【Android动画九章】-帧动画
- DAO 设计的实现:
- 转: Qcon 2016的开发者大会合集
- 第八周作业:
- 联系
- LINUX C语言,在文本中某一行插入内容
- win7系统怎么更换电脑桌面壁纸呢?
- Spring中Bean的作用域
- iOS八种传值