Group Anagrams(***)
来源:互联网 发布:淘宝美工助理官网 编辑:程序博客网 时间:2024/04/29 04:31
题目:
Given an array of strings, group anagrams together.
For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
Return:
[ [“ate”, “eat”,”tea”], [“nat”,”tan”], [“bat”] ]
思路:
1. 对每一个单词进行排序,通过map判断得到的单词是否已经存在,如果存在则放入对应value(List)中
2. 再对value进行排序,按照字典顺序
public class Solution { public static List<List<String>> groupAnagrams(String[] strs) { HashMap<String , List<String>> map = new HashMap<> (); for(String s : strs) { char[] chars = s.toCharArray(); Arrays.sort(chars); String tmp = new String(chars); if(map.containsKey(tmp)) { map.get(tmp).add(s); } else { ArrayList<String> list = new ArrayList<>(); list.add(s); map.put(tmp, list); } } List<List<String>> groups = new ArrayList<> ( map.values()); for(int i = 0 ; i < groups.size(); i++) { List<String> group = groups.get(i); String[] ss = group.toArray(new String[group.size()]); Arrays.sort(ss); groups.set(i, Arrays.asList(ss)); } return groups; }}
0 0
- Group Anagrams
- Group Anagrams(***)
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- linux设置默认启动的服务 NFS VSFTPD
- POJ2566--Bound Found(尺取法)
- java和javascript的数字校验
- 资深骑行爱好者如何看待乐视自行车
- js Class选择器 和 阻止事件冒泡
- Group Anagrams(***)
- leetcode 145 —— Binary Tree Postorder Traversal
- windows10下安装Ubuntu15.04双系统
- 手把手实现andriod应用增量升级
- Android的所有权限说明
- POJ---1363-Rails(stack)
- 华为荣耀回收旧手机 涵盖苹果三星等品牌
- crossApp初级-CATextField类-9
- 二叉搜索树(Binary Search Tree)的插入与删除