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: All inputs will be in lower-case.

遍历一遍strs,碰到的每个字符串后先拆解成字符数组,然后按照字典顺序排序,之后组装为string类型的字符串

判断字符串是否出现在map中,若在,将拆解组装之前的字符串存入相应map 的 list中

map集合中各个key对应的value就是由相同字母组成的字符串

public class Solution {
    //第一次 一次提交 一次AC
    public List<List<String>> groupAnagrams(String[] strs) {
        List<List<String>> ansli  = new ArrayList<List<String>>();
        HashMap<String,List<String>> map = new HashMap<String,List<String>>();
        for(int i=0;i<strs.length;i++){
            char [] c = strs[i].toCharArray();
            Arrays.sort(c);
            String str = String.valueOf(c);
            if( map.containsKey(str) ){
                List<String> list = map.get( str );
                list.add( strs[i] );
            }
            else{
                List<String> list = new ArrayList<String>();
                ansli.add(list); //既然对于应用型数据添加的应用的地址,添加之后对于应用的修改,对所有有该引用类型的地值
                                 //的,list都有效,就不用在通过遍历map 来实现了,替代了下方注释的部分
                list.add( strs[i] );
                map.put(str,list);
            }
        }
        //遍历map
        // Iterator<HashMap.Entry<String, List<String>>> entries = map.entrySet().iterator();
        // while (entries.hasNext()) {
        //     Map.Entry<String, List<String>> entry = entries.next();
        //     ansli.add(entry.getValue());
        // }
        return ansli;
    }
}
时间: 2024-08-08 22:10:03

Leetcode 49. Group Anagrams的相关文章

19.2.7 [LeetCode 49] Group Anagrams

Given an array of strings, group anagrams together. Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat","tea"], ["nat","

[leetcode]49. Group Anagrams变位词归类

Given an array of strings, group anagrams together. Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat","tea"], ["nat","

LeetCode 49. Group Anagrams HashTable

Given an array of strings, group anagrams together. Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat","tea"], ["nat","

[leetcode]49. Group Anagrams重排列字符串分组

是之前的重排列字符串的延伸,判断是重排列后存到HashMap中进行分组 这种HashMap进行分组的方式很常用 public List<List<String>> groupAnagrams(String[] strs) { /* 其实重排列的那个题是有两种做法的,之前整理的是比较好的的一种字母哈希表的方法,还有一种方法 是把字符串排序,然后进行比较就行. 这个题正好就是用了排序的方法,排序后的字符串作为key,list作为value就行 一开始想用字母哈希表的方法,结果没做出来

LeetCode开心刷题二十六天——49.Group Anagrams

49. Group Anagrams Medium 1824116FavoriteShare Given an array of strings, group anagrams together. Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat

49. Group Anagrams(js)

49. Group Anagrams Given an array of strings, group anagrams together. Example: Input: ["eat", "tea", "tan", "ate", "nat", "bat"], Output: [ ["ate","eat","tea"], [&q

【一天一道LeetCode】#49. Group Anagrams

一天一道LeetCode系列 (一)题目 Given an array of strings, group anagrams together. For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return: [ ["ate", "eat","tea"

【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",

【Leetcode】Group Anagrams

题目链接:https://leetcode.com/problems/anagrams/ 题目: Given an array of strings, group anagrams together. For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return: [ ["ate", &q