码迷,mamicode.com
首页 > 其他好文 > 详细

Anagrams

时间:2015-04-23 07:04:56      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

ref http://www.cnblogs.com/springfor/p/3874667.html

高亮处"如果一个sorted word是在HashMap里面存在过的,说明这个词肯定是个变形词,除了把这个词加入到返回结果中,还需要把之前第一个存进HashMap里面的value存入result中。"

 

    public ArrayList<String> anagrams(String[] strs) {
        // 有一个关键点就是遇到第一个变形词的处理方式
        ArrayList<String> res = new ArrayList<String>();
        if(strs==null || strs.length==0) return res;
        HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>();
        
        for(String s: strs){
            char[] schar = s.toCharArray();
            Arrays.sort(schar);
            String t = new String(schar);
            if(hm.containsKey(t)){
                if(hm.get(t).size()==1){
                    res.add(hm.get(t).get(0));
                }
                hm.get(t).add(s);
                res.add(s);
            }else{
                ArrayList<String> tmp = new ArrayList<String>();
                tmp.add(s);
                hm.put(t,tmp);
            }
        }
        return res;
    }

 

Anagrams

标签:

原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4449242.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!