【leetcode-49】Anagrams(java)

原创 2015年07月10日 17:02:52

问题描述:
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。

代码如下:

     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;
     }

LeetCode(49)Group Anagrams

题目Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”...
  • fly_yr
  • fly_yr
  • 2015年09月01日 20:28
  • 5497

LeetCode-49-Group Anagrams(哈希)-Medium

题意理解: 将给定字符串分组,要求同一组的字符串由相同字符组成,最终,将各组字符串按字典序输出; 题目分析: 1. 将字符串先进行排序,然后通过字符串比较来判定是否为同一组; 2. 将...
  • eddy_liu
  • eddy_liu
  • 2016年01月10日 18:32
  • 2008

LeetCode49——Group Anagrams

LeetCode49——Group Anagrams 题意: 给定一组string,将这些string分类,同一类string满足如下条件: 1.在同类内部,按照字典序排列。 2.不同类的st...
  • zhangxiao93
  • zhangxiao93
  • 2015年10月23日 09:43
  • 859

leetcode 49. Group Anagrams (Java实现)

原题: Given an array of strings, group anagrams together. For example, given: ["eat", "tea", "tan",...
  • fyy607
  • fyy607
  • 2017年01月06日 15:47
  • 340

LeetCode(49)Anagram

题目如下: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs wi...
  • feliciafay
  • feliciafay
  • 2014年01月23日 06:03
  • 1503

【leetcode-49】Anagrams(java)

问题描述: Given an array of strings, return all groups of strings that are anagrams.Note: All inputs wi...
  • zdavb
  • zdavb
  • 2015年07月10日 17:02
  • 543

LeetCode-49:Group Anagrams

一、问题描述 给定一个字符串数组,按照同构词(相同字母组成的单词)分类。 例如,给定[“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 返回:[ [“ate”,...
  • lemon2631
  • lemon2631
  • 2017年05月30日 16:54
  • 94

蓝桥杯 Anagrams问题(java题解)

问题描述   Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的。例如,“Unclear”和“Nuclear”、“Rimon”和“M...
  • qq_15370821
  • qq_15370821
  • 2016年06月02日 09:50
  • 662

Leetcode_49_Anagrams

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42744709 Given an array ...
  • pistolove
  • pistolove
  • 2015年01月15日 18:21
  • 1139

LeetCode 49

这个题目的意思是,给出一组单词,找出其中所有"异构"的单词组,异构的条件是单词的组成字符的种类和各字符出现的次数相同,上面图中的例子就可以说明这个问题,不过这个题也有一些要求:最后各个单词组必须有序,...
  • zr1076311296
  • zr1076311296
  • 2016年05月21日 18:04
  • 470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【leetcode-49】Anagrams(java)
举报原因:
原因补充:

(最多只允许输入30个字)