字谜分组

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

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
说明:

所有输入均为小写字母。
不考虑答案输出的顺序。

思路

判断字符串是否相等,可以进行排序,再做判断
用hashmap来存储数据,键为该字符串经过排序的结果,值为list添加了该字符串的原值

class Solution {
    public List> groupAnagrams(String[] strs) {
        
        if(strs==null || strs.length == 0){
            return new ArrayList>();
        }
        Map> map=new HashMap>();
        
        for(int i=0;i list=new ArrayList();
            
            if(map.containsKey(st)){
                list=map.get(st);
            }
            list.add(strs[i]);
            map.put(st,list);
        }
        return new ArrayList>(map.values());
    }
}

你可能感兴趣的:(字谜分组)