• LeetCode--Group Anagrams--Java


    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:

    1. For the return value, each inner list's elements must follow the lexicographic order.
    2. All inputs will be in lower-case.

    Update (2015-08-09):
    The signature of the function had been updated to return list<list<string>> instead of list<string>, as suggested here. If you still see your function signature return alist<string>, please click the reload button  to reset your code definition.

    Subscribe to see which companies asked this question

    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;  
        }  
    }  
    public class Solution {
        public List<List<String>> groupAnagrams(String[] strs) {
           Map<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
           for(String str : strs){
               String sortedstr = Sortstr(str);
               if(map.containsKey(sortedstr)){
                   map.get(sortedstr).add(str);
               }
               else{
                   map.put(sortedstr,new ArrayList<String>());
                   map.get(sortedstr).add(str);
               }
           }
           List<List<String>> result = new ArrayList<List<String>>(map.values());
           for(List<String> res : result){
               Collections.sort(res);
           }
           return result;
        }
        private String Sortstr(String str){
            char[] char1 = str.toCharArray();
            Arrays.sort(char1);
            return new String(char1);
        }
    }
  • 相关阅读:
    git常用命令笔记(二)
    Git for Windows安装和从Github下载工程
    为什么Mac或者Windows经常要配置环境变量?
    javagradle安装gradle的两种方式以及配置环境变量
    Macmac安装和使用homebrew
    收藏之关键词[git]搜索结果
    MAC电脑配置MYSQL JAVA MAVEN环境变量
    多测师讲解 python+selenium自动化测试讲解线性脚本(2) 高级讲师肖sir
    多测师讲解__app面试指导课_高级讲师肖sir
    多测师讲解__linux_高级讲师肖sir
  • 原文地址:https://www.cnblogs.com/Decmber/p/4924470.html
Copyright © 2020-2023  润新知