每日一题:LeetCode之字母异位词分组

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
输出:
[
[“ate”,“eat”,“tea”],
[“nat”,“tan”],
[“bat”]
]

思路:对包含相同字符的字符串,进行排序存到哈希表里。

public List<List<String>> groupAnagrams(String[] strs) {
        HashMap<String,List> hashmap=new HashMap();
        List res=new ArrayList();
        for(String s:strs){
            char[] t=s.toCharArray();
            Arrays.sort(t);
            String key=String.valueOf(t);
            if(!hashmap.containsKey(key))hashmap.put(key,new ArrayList());
            hashmap.get(key).add(s);
        }
        return new ArrayList(hashmap.values());
    }
发布了18 篇原创文章 · 获赞 0 · 访问量 140

猜你喜欢

转载自blog.csdn.net/qq_40053995/article/details/104943162
今日推荐