首页 > 其他 > 详细

leetcode--Anagrams

时间:2014-02-09 16:32:01      阅读:301      评论:0      收藏:0      [点我收藏+]

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class Solution {
    public ArrayList<String> anagrams(String[] strs) {
            ArrayList<String> result = new ArrayList<String>();
        if(strs.length > 0){
            HashMap<String, ArrayList<String> > words = new HashMap<String, ArrayList<String>>();
            for(String s : strs){
                String sortedString = sortedString(s);
                if(words.containsKey(sortedString))
                    words.get(sortedString).add(s);
                else{
                    ArrayList<String> alist = new ArrayList<String>();
                    alist.add(s);
                    words.put(sortedString, alist);
                }              
            }          
            Iterator<ArrayList<String> > itr = words.values().iterator();
            while(itr.hasNext()){
                ArrayList<String> nodes = itr.next();
                if(nodes.size()> 1)
                    result.addAll(nodes);
            }
        }
        return result;
    }
     
    public String sortedString(String s){
        char[] Schar = s.toCharArray();
        Arrays.sort(Schar);
        return Arrays.toString(Schar);
    }
}

  

leetcode--Anagrams

原文:http://www.cnblogs.com/averillzheng/p/3541358.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!