#yyds干货盘点# leetcode算法题:字母异位词分组

网友投稿 737 2022-11-01

#yyds干货盘点# leetcode算法题:字母异位词分组

#yyds干货盘点# leetcode算法题:字母异位词分组

题目:

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]

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

示例 2:

输入: strs = [""]

输出: [[""]]

示例 3:

输入: strs = ["a"]

输出: [["a"]]

代码实现:

class Solution { public List> groupAnagrams(String[] strs) { Map> map = new HashMap>(); for (String str : strs) { int[] counts = new int[26]; int length = str.length(); for (int i = 0; i < length; i++) { counts[str.charAt(i) - 'a']++; } // 将每个出现次数大于 0 的字母和出现次数按顺序拼接成字符串,作为哈希表的键 StringBuffer sb = new StringBuffer(); for (int i = 0; i < 26; i++) { if (counts[i] != 0) { sb.append((char) ('a' + i)); sb.append(counts[i]); } } String key = sb.toString(); List list = map.getOrDefault(key, new ArrayList()); list.add(str); map.put(key, list); } return new ArrayList>(map.values()); }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring集成Web环境的实例详解
下一篇:Jolt Server 一个支持实时重新加载和单页应用程序的Web服务器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~