zoukankan      html  css  js  c++  java
  • Group Anagrams

    package cn.edu.xidian.sselab.hashtable;

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Map;
    import java.util.Set;

    /**
     *
     * @author zhiyong wang
     * title: Group Anagrams
     * content:
     * 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:
     *
     *     For the return value, each inner list's elements must follow the lexicographic order.
     *     All inputs will be in lower-case.
     *
     *
     */
    public class GroupAnagrams {
        //参考大神的做法,自己没有想到可以用map作为容器进行存储,key为排序之后的一个串,value就是这个串对应的list
        //因为每个子list要求是排序的,所以第一步,先对strs里面所有的字符串进行排序,这样添加到每个list里面的就是排好序的
        public List<List<String>> groupAnagrams(String[] strs){
            if(strs == null || strs.length == 0) return new ArrayList<List<String>>();
            Arrays.sort(strs);
            Map<String,List<String>> map = new HashMap<String,List<String>>();
            for(int i=0;i<strs.length;i++){
                String temp = strs[i];
                char[] beforeSort = temp.toCharArray();
                Arrays.sort(beforeSort);
                String afterSort = String.valueOf(beforeSort);
                if(!map.containsKey(afterSort)) map.put(afterSort, new ArrayList<String>());                
                    map.get(afterSort).add(temp);
            }
            return new ArrayList<List<String>>(map.values());
        }
    }

  • 相关阅读:
    基于jQuery的上下无缝滚动应用(单行或多行)
    表单验证
    中国剩余定理 ( 的学习 )
    扩展欧几里德算法--学习笔记
    Vijos P1794 文化之旅
    1336 : Matrix Sum (hihocoder)
    nyoj 1030 hihocoder 1338
    多重邻接表
    图的存储 ( 十字链表 )
    01背包的变形
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5204272.html
Copyright © 2011-2022 走看看