【leetcode-49】Anagrams(java)
2015-07-10 17:02
477 查看
问题描述:
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
首先,先明白什么叫anagrams,比如eat\ate\tea,这三种,字符一样,但是顺序不同,就叫anagrams。
代码如下:
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
首先,先明白什么叫anagrams,比如eat\ate\tea,这三种,字符一样,但是顺序不同,就叫anagrams。
代码如下:
[code] public ArrayList<String> anagrams(String[] strs) { //key:SortedStr value:ArrayListStr HashMap<String, ArrayList<String>> maps = new HashMap<String, ArrayList<String>>(); ArrayList<String> result = new ArrayList<String>(); char[] tmpChar; String tmpStr; ArrayList<String> tmpArrayList; for(int i = 0;i<strs.length;i++){ tmpChar = strs[i].toCharArray(); Arrays.sort(tmpChar); tmpStr = new String(tmpChar); if(maps.containsKey(tmpStr)){ tmpArrayList = maps.get(tmpStr); tmpArrayList.add(strs[i]); }else { ArrayList<String> strings = new ArrayList<String>(); strings.add(strs[i]); maps.put(tmpStr, strings); } } Set<String> sets = maps.keySet(); for(String str:sets){ if((tmpArrayList=maps.get(str)).size()>1) result.addAll(tmpArrayList); } return result; }
相关文章推荐
- 说说Java生态圈的那些事儿
- java基础知识笔记
- java内功之jvm加载双亲模式
- Drools学习笔记-01-在eclipse indgo集成Drools5.5
- eclipse不编译生成.class的解决办法
- android-Eclipse,32位的工程导入64位Eclipse里,中文乱码
- Java工具方法hutool 使用备注
- Java 终于有 Lambda 表达式啦~Java 8 语言变化——Lambda 表达式和接口类更改【转载】
- JAVA类加载和反射介绍
- eclipse android 设置及修改生成apk的debug签名文件
- maven安装以及myeclipse10配置maven
- eclipse中,对方法进行注释.
- 【Java】汉诺塔问题
- java实现文件压缩与解压
- eclipse 项目中搜索资源(类方法,文件名,文件中的字符串)(图解)
- jdk的基本组成和java IDE
- java中MD5加密的小使用
- eclipse设置项目下文件编码格式
- MyEclipse根据WSDL文件生成WebService客户端并调用服务端方法
- java学习篇------用我自己的方式理解事件