[LeetCode Hot 100] LeetCode49. 字母异位词

发布时间 2023-12-05 12:06:38作者: Ac_c0mpany丶

题目描述

思路:哈希表

对字符串排序,如果是异位词,排序后就变成一样的了。

方法一:

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<>();

        for (int i = 0; i < strs.length; i ++) {
            String s = strs[i];
            char[] chs = s.toCharArray();
            Arrays.sort(chs);
			// 将字符数组变成字符串
            String key = String.valueOf(chs);
            if (!map.containsKey(key)) {
                map.put(key, new ArrayList<>());
            }
            map.get(key).add(s);
        }
        return new ArrayList<>(map.values());
    }
}
  • map.values()这表示获取了map中所有的值。在Java中,map是键值对的集合,.values()方法用于获取所有的值,而不包括键。这些值被视为一个集合或者说是一个集合视图。
  • 构造函数:ArrayList(Collection<? extends E> c)构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。