当前位置: 首页 > wzjs >正文

济南网站制作定制公司长春广告公司网站建设

济南网站制作定制公司,长春广告公司网站建设,杭州百度快照推广,网站pv uv有什么作用更新时间:2025-03-29 LeetCode题解专栏:实战算法解题 (专栏)技术博客总目录:计算机技术系列目录页 优先整理热门100及面试150,不定期持续更新,欢迎关注! 49. 字母异位词分组 给你一个字符串数组&#xf…

更新时间:2025-03-29

  • LeetCode题解专栏:实战算法解题 (专栏)
  • 技术博客总目录:计算机技术系列目录页

优先整理热门100及面试150,不定期持续更新,欢迎关注!


49. 字母异位词分组

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

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

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

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

方法一:排序哈希法

将每个字符串排序后的结果作为哈希表的键。字母异位词排序后的字符串相同,因此可以通过哈希表分组。

  1. 遍历每个字符串,将其转换为字符数组并排序。
  2. 将排序后的字符串作为键,原字符串添加到对应的列表中。
  3. 返回所有哈希表的值作为结果。

代码:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for (String s : strs) {char[] chars = s.toCharArray();Arrays.sort(chars);String key = new String(chars);map.putIfAbsent(key, new ArrayList<>());map.get(key).add(s);}return new ArrayList<>(map.values());}
}

复杂度分析:

  • 时间复杂度O(nk log k),其中 n 是字符串个数,k 是字符串最大长度。排序每个字符串需要 O(k log k) 时间。
  • 空间复杂度O(nk),哈希表存储所有字符串的键和列表。

方法二:计数哈希法

统计每个字符串中各字母的出现次数,将计数结果转换为唯一字符串作为哈希表的键。例如,“aab” 转换为 #2#1#0...#0

  1. 遍历每个字符串,统计每个字母的出现次数。
  2. 将计数数组转换为固定格式的字符串作为键。
  3. 将原字符串添加到对应的列表中,最终返回结果。

代码:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for (String s : strs) {int[] count = new int[26];for (char c : s.toCharArray()) {count[c - 'a']++;}StringBuilder keyBuilder = new StringBuilder();for (int i = 0; i < 26; i++) {keyBuilder.append('#');keyBuilder.append(count[i]);}String key = keyBuilder.toString();map.putIfAbsent(key, new ArrayList<>());map.get(key).add(s);}return new ArrayList<>(map.values());}
}

复杂度分析:

  • 时间复杂度O(nk),统计和构建键的时间为 O(k + 26)
  • 空间复杂度O(nk),存储所有字符串的键和列表。

对比总结

  • 排序法 实现简单,适合字符串较短的情况。
  • 计数法 在字符串较长时更高效,避免了排序的时间开销。

声明

  1. 本文版权归 CSDN 用户 Allen Wurlitzer 所有,遵循CC-BY-SA协议发布,转载请注明出处。
  2. 本文题目来源 力扣-LeetCode ,著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
http://www.dtcms.com/wzjs/539013.html

相关文章:

  • 长沙哪个网站建设最好wordpress 热门文章调用
  • 网站字体怎么修改央企门户网站哪家做的最好
  • 建材网站建设方案杭州建网站企业
  • 制定 网站改版优化方案西安百度关键词排名公司
  • 平顶山市住房和城乡建设局网站温州市住房和城乡建设网站
  • 商业网站的基本构成百度快照比网站上线时间早
  • 好大夫在线个人网站王建设富阳网站公司
  • 网站的管理跟新维护有哪些免费生成网站软件下载
  • 建设报名系统网站淘宝有WordPress网站搭建吗
  • wordpress单页网站在本页跳转什么网站可以接单做设计
  • 勾线外包网站公司网站开发费账务处理
  • 网站开发百度百科主页不是wordpress
  • 城乡建设部网站安全员证书查询软件开发者怎么赚钱
  • 高端全屋定制十大名牌排行榜seo人员工作内容
  • 网上商城网站开发需求说明书网站空间哪家做的好
  • 网站建设哪个平台好网页制作与设计实训
  • ppt免费模板大全网站wordpress edd 卡密
  • 汽车维修保养网站模板衡阳网站排名优化公司
  • 网站安全防护方案教做甜点的网站
  • 哪个网站做设计兼职不用压金甘肃省城乡建设局网站首页
  • 哈尔滨工程项目建设网广告优化师的工作内容
  • 网站seo系统网站地图做法做
  • 网站活泼电子商务网站数据库怎么做
  • 哪个网站的课件做的好网站右边悬浮代码
  • 网站建设培训 上海可以投放广告的网站
  • 淘客网站做的好的本溪市住房和城乡建设局网站
  • 建网站选哪个wordpress 3.8.3 下载
  • 苏州知名网站建设设计公司排名wordpress弹幕播放
  • 百度云域名怎么做网站上海专业网站建设费
  • 国外视觉设计门户网站一级a做爰片在线看免播放器网站