美文网首页
数据结构与算法-字母异位词分组49(java)

数据结构与算法-字母异位词分组49(java)

作者: 这里有颗小螺帽 | 来源:发表于2020-02-24 20:15 被阅读0次

tags:

  • 字符串
    categories:
  • 数据结构与算法

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

示例:

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

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题:

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        //new 一个hashmap
        HashMap<String,ArrayList<String>> map = new HashMap<>();
        //遍历数组找到字母异位词
        for(String str : strs){
            //将字符串转为字符数组
            char[] ch = str.toCharArray();
            //排列字符
            Arrays.sort(ch);
            //排列后的字符转为 String
            String ss = String.valueOf(ch);
            //如果 map 里不存在当前的 key,则 put 进去一个 key(ss),value(new ArrayList<>())
            if(!map.containsKey(ss)){
                map.put(ss,new ArrayList<>());
            }
            //添加 value
            map.get(ss).add(str);
        }

        return new ArrayList<>(map.values());
    }
}

相关文章

网友评论

      本文标题:数据结构与算法-字母异位词分组49(java)

      本文链接:https://www.haomeiwen.com/subject/agfwqhtx.html