• leetcode-49


    给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

    示例:

    输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
    输出:
    [
    ["ate","eat","tea"],
    ["nat","tan"],
    ["bat"]
    ]
    说明:

    所有输入均为小写字母。
    不考虑答案输出的顺序。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/group-anagrams
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    两个方式,基本思路都是对复合一个list的对象转换成相同key的思路

    package Leetcode;
    
    import java.util.*;
    
    public class Solution48 {
        public List<List<String>> groupAnagrams(String[] strs) {
            if (strs.length == 0) {
                return new ArrayList<>();
            }
            Map<String, List> ans = new HashMap<>();
            for (String s : strs) {
                char[] ca = s.toCharArray();
                Arrays.sort(ca);
                String key = ca.toString();
                if (!ans.containsKey(key)) {
                    ans.put(key, new ArrayList());
                } else {
                    ans.get(key).add(s);
                }
            }
            return new ArrayList<>(ans.values());
        }
    
        public List<List<String>> groupAnagrams2(String[] strs) {
            if (strs.length == 0) {
                return new ArrayList<>();
            }
            Map<String, List> ans = new HashMap<>();
            int[] count = new int[26];
            for (String s : strs) {
                Arrays.fill(count, 0);
                for (char c : s.toCharArray()) {
                    count[c - 'a']++;
                }
                StringBuilder sb = new StringBuilder("");
                for (int i = 0; i < 26; i++) {
                    sb.append("#");
                    sb.append(count[i]);
                }
                String key = sb.toString();
                if (!ans.containsKey(key)) {
                    ans.put(key, new ArrayList());
                } else {
                    ans.get(key).add(s);
                }
            }
            return new ArrayList<>(ans.values());
        }
    }

    end

    一个没有高级趣味的人。 email:hushui502@gmail.com
  • 相关阅读:
    使用VideoView开发视频总结
    后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结
    8 Crash Reporting Tools For iOS And Android Apps
    Best Mobile Crash Reporting Software
    How do I obtain crash-data from my Android application?
    ACRA (Automated Crash Reporting for Android)
    Debugging Neural Networks with PyTorch and W&B
    OpenPose MobileNet V1
    Real-time-human-pose-estimation-by-pytorch
    openpose-pytorch
  • 原文地址:https://www.cnblogs.com/CherryTab/p/12381311.html
Copyright © 2020-2023  润新知