(Python, Java) 리트코드 - group anagrams

[문제 링크]

풀이

from typing import List
from collections import defaultdict


class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        store = defaultdict(list)
        for str in strs:
            store[''.join(sorted(str))].append(str)
        return list(store.values())

Java 풀이

import java.util.*;
import java.util.stream.Collectors;

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

        for (String str : strs) {
            char[] chars = str.toCharArray();
            Arrays.sort(chars);
            String key = String.valueOf(chars);
            List<String> value = anagramMap.getOrDefault(key, new ArrayList<String>());
            value.add(str);
            anagramMap.put(key, value);
        }

        return new ArrayList<>(anagramMap.values());
        // return anagramMap.entrySet().parallelStream().map(Map.Entry::getValue)
        //         .collect(Collectors.toList());
    }
}

© 2021. By Backtony