LeetCode---49. Group Anagrams

LeetCode—49. Group Anagrams

题目

https://leetcode.com/problems/group-anagrams/description/
给出一个字符串数组,将其中字符相同的字符串归为相同的类别,不考虑字符出现的顺序,只需字符相同即可。返回最终的分类结果。
在这里插入图片描述

思路及解法

首先想到能够使用hashmap解决这个问题。然后考虑key和value是什么,我们要把字符相同的字符串放到一起,所以value就可以是一个string的list,装载分组相同的字符串;key我们使用排序sort过的对应字符,注意要转换为string。

代码

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        int strNum = strs.length;
        HashMap<String, List<String>> hm = new HashMap<>();
        for(int i=0; i<strNum; i++){
            char[] c = strs[i].toCharArray();
            Arrays.sort(c); //排序
            String key = String.valueOf(c); //转换为string
            if(!hm.containsKey(key)) hm.put(key, new ArrayList<String>());
            hm.get(key).add(strs[i]);
        }
        return new ArrayList<List<String>>(hm.values());
     }
}

猜你喜欢

转载自blog.csdn.net/pnnngchg/article/details/82949907