美文网首页
数据结构与算法-字母异位词分组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