• 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());
        }
    }
  • 相关阅读:
    转: wireshark过滤规则
    PHP开发
    转:python安装pycrypto
    How to use pycharm to debug scrapy projects
    VCForPython27.msi安装后, 还显示error: Unable to find vcvarsall.bat
    Dcgpofix
    Dsamain
    组托管服务帐户概述
    创建 PSO
    介绍 Active Directory 域服务 (AD DS) 虚拟化
  • 原文地址:https://www.cnblogs.com/xiaolovewei/p/8179228.html
Copyright © 2020-2023  润新知