[LeetCode]Group Anagrams
来源:互联网 发布:人工智能 自然语言 编辑:程序博客网 时间:2024/06/06 23:58
Question
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.
本题难度Medium。
【思路】
对单词进行排序得到key
,看是否为同一个单词。同时利用一个HashMap变量保存<key,list序号>
。
【复杂度】
时间 O(NKlogK) 空间 O(N)
【注意】
本题的单词都是lower-case。
【代码】
public class Solution { public List<List<String>> groupAnagrams(String[] strs) { //require List<List<String>> ans=new ArrayList<>(); if(strs==null) return ans; Map<String,Integer> map=new HashMap<String,Integer>(); //invariant int num=0; for(String s:strs){ String r=sort(s); if(map.containsKey(r)){ int index=map.get(r); ans.get(index).add(s); }else{ map.put(r,num); ans.add(new ArrayList<String>()); ans.get(num).add(s); num++; } } //ensure return ans; } private String sort(String s){ char[] chars=s.toCharArray(); Arrays.sort(chars); return new String(chars); }}
0 0
- LeetCode Group Anagrams
- Leetcode#49||Group Anagrams
- [LeetCode] Group Anagrams
- [leetcode] 49.Group Anagrams
- LeetCode题解:Group Anagrams
- [leetcode] Group Anagrams
- LeetCode-Group Anagrams
- LeetCode OJ:Group Anagrams
- [Leetcode]Group Anagrams
- 《leetCode》:Group Anagrams
- leetcode | Group Anagrams
- leetcode 49:Group Anagrams
- LeetCode -- Group Anagrams
- LeetCode---Group Anagrams
- leetcode Group Anagrams
- Leetcode 49: Group Anagrams
- LeetCode Group Anagrams
- LeetCode 049 Group Anagrams
- MyEclipse使用外部界面
- Cloudera Manager的安装包和pacels下载链接
- Android Scroller完全解析
- Navicat11全系列激活(注册机)
- 合并两个排序的链表
- [LeetCode]Group Anagrams
- OpenCV调用树莓派原装摄像头的方法
- Mysql中的count()与sum()区别
- jquery 给当前页面或者跳转后页面对应的导航栏添加选中样式
- 七牛云上传图片
- JS基础第10课:控制类名(className 属性)
- ssm+shiro基础框架搭建(二)
- ServletConfig与ServletContext详解
- Netty server demo