zoukankan      html  css  js  c++  java
  • 049 Group Anagrams 字谜分组

    给定一个字符串数组,将相同字谜组合在一起。(字谜是指颠倒字母顺序而成的字)
    例如,给定 ["eat", "tea", "tan", "ate", "nat", "bat"],返回:
    [
      ["ate", "eat","tea"],
      ["nat","tan"],
      ["bat"]
    ]
    注意:所有的输入都是小写的。
    详见:https://leetcode.com/problems/group-anagrams/description/

    Java实现:

    class Solution {
        public List<List<String>> groupAnagrams(String[] strs) {
            List<List<String>> res = new ArrayList<List<String>>();
            int size = strs.length;
            if(size<1){
                return res;
            }
            Map<String,List<String>> map = new HashMap<String,List<String>>();
            String tmp = "";
            for(int i=0;i<size;i++){
            	tmp = strs[i];
            	char[] arrayOfString = tmp.toCharArray();
            	Arrays.sort(arrayOfString);
            	tmp = new String(arrayOfString);
            	if(map.containsKey(tmp)){
            		map.get(tmp).add(strs[i]);
            	}else{
            		List<String> item = new ArrayList<String>();
            		item.add(strs[i]);
            		map.put(tmp, item);
            	}
            }
            for (List<String> value : map.values()) {         	  
                res.add(value);           
            } 
            return res;
        }
    }
    

    参考:https://www.cnblogs.com/grandyang/p/4385822.html

  • 相关阅读:
    Java 标识符
    Java 关键字详解
    Java 语言的主要特性
    redis学习
    垃圾回收
    JVM内存结构
    sql总结(DML)
    sql总结(DDL)
    加密算法
    《数据结构》 定长顺序串常用操作代码集合
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8691981.html
Copyright © 2011-2022 走看看