第32题 Anagrams
来源:互联网 发布:巨人网络 研发 待遇 编辑:程序博客网 时间:2024/06/05 10:55
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
Hash Table StringSolution in Java:
public class Solution { public List<String> anagrams(String[] strs) { Map<String, List<Integer>> anaMap = new HashMap<String, List<Integer>>(); for(int i=0; i<strs.length; i++){ char[] curStr = strs[i].toCharArray(); Arrays.sort(curStr); String orig = String.valueOf(curStr); if(anaMap.containsKey(orig)){ List<Integer> curList = anaMap.get(orig); curList.add(i); anaMap.put(orig, curList); }else{ List<Integer> curList = new ArrayList<Integer>(); curList.add(i); anaMap.put(orig, curList); } } List<String> anagrams = new ArrayList<String>(); Iterator<String> iter = anaMap.keySet().iterator(); while(iter.hasNext()){ String curKey = iter.next(); List<Integer> curList = anaMap.get(curKey); if(curList.size()>1){ for(int i=0; i<curList.size(); i++){ anagrams.add(strs[curList.get(i)]); } } } return anagrams; }}
Note:
1. anagram意思是变位词,即变换或颠倒String中字母顺序而成的另一词。所以变位词长度一定相同。
2. 将一个String中字母按字母顺序排序,先将String变成char array,然后用Arrays.sort(char[])函数。
3. char[]到String转换: str = String.valueOf(char[])
4. 检查map中有无某一key:map.containsKey(key)返回boolean值
5. 遍历HashMap:可以通过keySet遍历,建立Iterator<String> iter = map.keySet().iterator();
while(iter.hasNext()){...}
6. 获取ArrayList中某index的值:arrayList.get(index)
0 0
- 第32题 Anagrams
- LeetCode第49题之 Group Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- anagrams
- Anagrams
- JDK/bin目录下的不同exe文件的用途(appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii...)
- Android漂亮的UI库集合
- [点点搬家]关于闭包(closure)的小知识
- 度过hi玩v崩溃了松岛枫角磨
- 64位Win7安装SQL Server2008时,提示已安装SQL Server 2005 Express 工具,不能继续安装
- 第32题 Anagrams
- iOS 多线程和GCD(Grand Central Dispath) 教程 (一)
- 线程等待WaitXXXXX()函数系列之WaitForSingleObject和WaitForMultipleObject
- Java CSV操作(导出和导入)
- 【开源框架】Android之史上最全最简单最有用的第三方开源库收集整理
- AutoIt 快速入门指南
- centos7 + hadoop 1.2.1基本安装配置
- 美女解说dota冷冷照片,沫沫最新照片 冷冷照片 ...-百度空间
- hdu1495 非常可乐(bfs)