Leetcode 49 Group Anagrams

HowieLee59發表於2018-12-31

Given an array of strings, group anagrams together.

Example:

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

Note:

  • All inputs will be in lowercase.
  • The order of your output does not matter.

這個題的意思是給出一串字串,然後給出相同字元的一串。

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        if(strs == null && strs.length == 0){
            return new ArrayList<List<String>>();
        }
        HashMap<String,List<String>> map = new HashMap<>();//設定一個map來做
        for(String s : strs){
            char[] ss = s.toCharArray();
            Arrays.sort(ss);//排序後含有相同的字元的就可以放入list中
            String a = String.valueOf(ss);
            if(!map.containsKey(a)){
                map.put(a,new ArrayList<String>());
            }//首先建立
            map.get(a).add(s);//map做對映
        }
        return new ArrayList<List<String>>(map.values());//將map的values中的數進行返回
    }
}

 

相關文章