zoukankan      html  css  js  c++  java
  • 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.

    解题思路:

    这道题让我们群组给定字符串集中所有的错位词,所谓的错位词就是两个字符串中字母出现的次数都一样,只是位置不同,比如abc,bac, cba等它们就互为错位词,那么我们如何判断两者是否是错位词呢,我们发现如果把错位词的字符顺序重新排列,那么会得到相同的结果,所以重新排序是判断是否互为错位词的方法,由于错位词重新排序后都会得到相同的字符串,我们用排序后的字符串作为key,这个字符串对应的错位词的集合作为value。

    class Solution {
        public List<List<String>> groupAnagrams(String[] strs) {
            /*
            如果把错位词的字符顺序重新排列,那么会得到相同的结果.我们用排序后的字符串作为key,这个字符串对应的错位词的集合作为value。
            */
            Map<String,List<String>> map=new HashMap<String,List<String>>();
            if(strs==null||strs.length==0) return new ArrayList<List<String>>();
            for(String s:strs){
                char[] c=s.toCharArray();
                Arrays.sort(c);
                String str=String.valueOf(c);
                if(!map.containsKey(str)){
                    List<String> li=new ArrayList<>();
                    li.add(s);
                    map.put(str,li);
                }else{
                    map.get(str).add(s);
                }        
            }
            
            return new ArrayList<List<String>>(map.values());
        }
    }
  • 相关阅读:
    DATASNAP远程方法返回TSTREAM正解
    DELPHI获取宽带IP
    DELPHI HMAC256
    JWT -- JSON WEB TOKEN
    UNIGUI集成HTML导航
    咏南WEB APP开发框架
    购买咏南中间件
    咏南中间件当作WEB SERVER使用方法
    咏南中间件增加WEBSOCKET支持
    iOS -- 设置label的自适应
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8179228.html
Copyright © 2011-2022 走看看