[LeetCode]--49. Group Anagrams
来源:互联网 发布:mac用的办公软件 编辑:程序博客网 时间:2024/05/22 15:21
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.
anagrams:由颠倒字母顺序而构成的字
用一个map来存放,map的key存放字符串按字母表字符排序后的顺序,value存放原本的字符串。
public List<List<String>> groupAnagrams(String[] strs) { Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>(); for (String str : strs) { String sortedStr = sortStr(str); if (map.containsKey(sortedStr)) { map.get(sortedStr).add(str); } else { map.put(sortedStr, new ArrayList<String>()); map.get(sortedStr).add(str); } } List<List<String>> res = new ArrayList<List<String>>(map.values()); for (List<String> list : res) { Collections.sort(list); } return res; } private String sortStr(String str) { char[] charArr = str.toCharArray(); Arrays.sort(charArr); return new String(charArr); }
我用的是这个判断是否相同的组成。这种思路也可以供大家参考。
public boolean isTheSameComponent(String a, String b) { if ((a == null || a.length() == 0) && (b == null || b.length() == 0)) return true; if (a.length() != b.length()) return false; List<Character> list = new ArrayList<Character>(); for (int i = 0; i < a.length(); i++) list.add(a.charAt(i)); for (int i = 0; i < b.length(); i++) if (list.contains(b.charAt(i))) { list.remove((Character) b.charAt(i)); } return list.size() == 0; }
0 0
- [leetcode] 49.Group Anagrams
- LeetCode 49. Group Anagrams
- [LeetCode]49. Group Anagrams
- leetcode 49. Group Anagrams
- 49. Group Anagrams LeetCode
- Leetcode 49. Group Anagrams
- LeetCode 49. Group Anagrams
- LeetCode 49. Group Anagrams
- [leetcode] 49. Group Anagrams
- LeetCode 49. Group Anagrams
- LeetCode-49.Group Anagrams
- [Leetcode] 49. Group Anagrams
- LeetCode - 49. Group Anagrams
- [LeetCode] 49. Group Anagrams
- leetcode 49. Group Anagrams
- [leetcode] 49. Group Anagrams
- leetcode 49. Group Anagrams
- [LeetCode]--49. Group Anagrams
- C++编译中出现error C2664 ,error C2440,error 2039的解决方法
- boost智能指针笔记
- 聚类分析中几种算法的比较
- 使用AllTDTLayer在810libs下的问题
- 模版笔记002 - 类模版
- [LeetCode]--49. Group Anagrams
- 【!!!非专业严肃文章】《C++Primer Plus》第一次复习总结(1~4章)【一】
- MyCat简易配置
- 函数绑定器
- Monkey总结(三)
- 请求Requst中获取访问请求的客户端IP
- php通过mht文件方式生成带图片的word文档
- birt 显示源sql调试
- courseras NN_for_ml系列(lecture 2 )