zoukankan      html  css  js  c++  java
  • Leecode no.49 字母异位词分组

    package leecode;

    import java.util.*;

    /**
    * 49. 字母异位词分组
    *
    * 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
    *
    * 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
    *
    * @author Tang
    * @date 2021/12/16
    */
    public class GroupAnagrams {


    public List<List<String>> groupAnagrams(String[] strs) {

    Map<String, List<String>> map = new HashMap<>();

    //按字母排序
    for (String str : strs) {
    String sort = sort(str);
    List<String> list = map.getOrDefault(sort, new ArrayList<>());
    list.add(str);
    map.put(sort, list);
    }

    //排序后字符串加入到
    List<List<String>> resultList = new ArrayList<>();
    for (String key : map.keySet()) {
    resultList.add(map.get(key));
    }

    return resultList;
    }

    /**
    * ask码排序
    *
    * @param str 返回排序后的字符串
    * @return
    */
    private String sort(String str) {
    char[] chars = str.toCharArray();

    //冒泡排序 从大到小
    for(int i = 0; i < chars.length; i++) {
    char max = chars[i];
    for(int j = i; j < chars.length; j++) {
    if(max < chars[j]) {
    chars[i] = chars[j];
    chars[j] = max;
    max = chars[i];
    }

    }


    }

    return Arrays.toString(chars);
    }

    public static void main(String[] args) {

    }


    }
  • 相关阅读:
    小程序生命周期
    async/await实现图片的串行、并行加载
    移动应用区别
    小程序组件
    secureCRT
    LInux
    java实现八大排序算法
    求出所有排列 去重全排列 回溯算法
    二分法基本思想
    异常
  • 原文地址:https://www.cnblogs.com/ttaall/p/15698656.html
Copyright © 2011-2022 走看看