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

[LeetCode]49 Anagrams

时间:2015-01-03 13:22:23      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:leetcode

https://oj.leetcode.com/problems/anagrams/

http://blog.csdn.net/linhuanmars/article/details/21664747

public class Solution {
    public List<String> anagrams(String[] strs) {
        
        int len = strs.length;
        
        Map<Map<Integer, Integer>, List<String>> map = new HashMap<>();
        for (String s : strs)
        {
            Map<Integer, Integer> pattern = pattern(s);
            List<String> list = map.get(pattern);
            if (list == null)
                list = new ArrayList<String>();
            list.add(s);
            map.put(pattern, list);
        }
        
        List<String> toReturn = new ArrayList<>();
        for (List<String> lists : map.values())
        {
            if (lists.size() > 1)
            {
                toReturn.addAll(lists);
            }
        }
        return toReturn;
    }
    
    private static final int CHAR_SIZE = 26;
    
    // Assume ‘a - z‘
    private Map<Integer, Integer> pattern(String s)
    {
        Map<Integer, Integer> pattern = new HashMap<>();
        for (char c : s.toCharArray())
        {
            int v = c - ‘a‘;
            Integer occr = pattern.get(v);
            if (occr == null)
                occr = 0;
            occr ++;
            pattern.put(v, occr);
        }
        return pattern;
    }
}


[LeetCode]49 Anagrams

标签:leetcode

原文地址:http://7371901.blog.51cto.com/7361901/1598615

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