leetcode-49 Group Anagrams 동위어 사전 정렬
Given an array of strings,group anagrams together.
For example, given: ["eat", "tea","tan", "ate", "nat", "bat"], Return:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
Note:
Update (2015-08-09): The signature of the function had been updated to return List
- > insteadof List
 
문제 분석:
사전의 순서를 정렬하는 방법은 매우 많은데, 이 그림은 집합 중의sort 방법을 이용하여 정렬하는 데 편리하다.
일치하는 문제를 찾으려면 HashMap을 사용하는 것이 좋습니다.
코드:
public class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>>result = new ArrayList<>();
        if(strs == null || strs.length == 0)
           return result;
        // key, List HashMap 
        HashMap<String,List<String>>map = new HashMap<>();
       
        for(int i = 0; i < strs.length; i++) {
           char[] chars = strs[i].toCharArray();
           //  
           Arrays.sort(chars);
           String temp = new String(chars);
           
           if (!map.containsKey(temp)) {
               List<String> result_list = new ArrayList<>();
               result_list.add(strs[i]);
               map.put(temp, result_list);
           } else {
               map.get(temp).add(strs[i]);
           }
        }
       
        // map, ArrayList 
        Iterator<Map.Entry<String,List<String>>>iterator = map.entrySet().iterator();
        while(iterator.hasNext()) {
           Map.Entry<String,List<String>> entry = iterator.next();
           List<String> temp_list = entry.getValue();
           Collections.sort(temp_list);
           result.add(temp_list);
        }       
        return result;
    }
}이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.