LeetCode Anagrams
来源:互联网 发布:网络的吃鸡是啥意思 编辑:程序博客网 时间:2024/06/08 13:29
原题链接在这里:https://leetcode.com/problems/anagrams/
作者道题让我想起刚才的 Valid Anagram 简直想的太麻烦了。
这道题的思路就是sort strs 数组中的每一个string,建立HashMap,key 是 sorted string, value 是 list of all original strings.
最后iterate hm,所有value 长度大于1的都是anagram。
Note:1. sort string 就用 string.toCharArray(), 然后用Arrays.sort(), 最后建立一个new String。这里注意是Arrays 而不是 Array。
2. list 的长度用 list.size().
3. 链接现有list 到一个新的list上可以直接用 mainList.addAll(subList) 来完成。
AC Java:
<span style="font-size:14px;">public class Solution { public List<String> anagrams(String[] strs) { if(strs == null || strs.length == 0) return null; List<String> res = new ArrayList<String>(); HashMap<String,ArrayList<String>> hm = new HashMap<String,ArrayList<String>>(); for(int i = 0; i < strs.length; i++){ String key = sortStr(strs[i]); if(hm.containsKey(key)){ hm.get(key).add(strs[i]); }else{ ArrayList<String> valList = new ArrayList<String>(); valList.add(strs[i]); hm.put(key, valList); } } for(String s : hm.keySet()){ if(hm.get(s).size() > 1){ res.addAll(hm.get(s)); } } return res; } private String sortStr(String s){ char[] temp = s.toCharArray(); Arrays.sort(temp); //error String str = new String(temp); return str; }}</span>
0 0
- LeetCode: Anagrams
- LeetCode: Anagrams
- LeetCode Anagrams
- Leetcode: Anagrams
- [Leetcode] Anagrams
- LeetCode : Anagrams
- [leetcode] anagrams
- LeetCode Anagrams
- [LeetCode] Anagrams
- [LeetCode]Anagrams
- [leetcode]Anagrams
- leetcode anagrams
- [leetcode] Anagrams
- LeetCode-Anagrams
- LeetCode - Anagrams
- Leetcode: Anagrams
- 【Leetcode】Anagrams
- LeetCode Anagrams
- apue 第十七章 高级进程间通信
- Unreal、CryEngine、Gamebryo引擎介绍
- hdu2570 迷瘴(贪心)
- 同步和互斥量
- IE11 Windows7下F12 DOC资源管理器不能用Exception in window.onload: Error: An error has ocurredJSPlugin.3005
- LeetCode Anagrams
- Linux内存管理--伙伴系统和内存分配器
- Pie
- MFC技术内幕系列之(一)---MFC应用程序“生死因果”内幕
- 使用Visual Studio开发游戏——微软宣布与Unity、Unreal Engine和Cocos展开全新合作
- JUnit4参数化测试
- RTNETLINK answers: File exists错误
- UVALive 6042 - Bee Tower(dp)
- Linux伙伴系统