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

Leetcode49. 字母异位词分组

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

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

 解题思路:计数

思路:题意是字符串的字符都是小写,可以对每个字符串统计其中字符的频次,将每个字符频次相同的字符串放在一组
复杂度:时间复杂度O(n*k),n是字符串个数,k是最长字符串长度,循环字符串数组复杂度O(n),对每个字符串统计频次复杂度O(k)。空间复杂度O(n*k),map中存放了n个大小最长为k的字符串。

代码:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<String, List<String>>();for(String str : strs){//对每个字符串统计出现的次数int[] counts = new int[26];for(int i = 0; i < str.length(); i++){counts[str.charAt(i) - 'a']++;}//对将字符串进行拼接StringBuffer sb = new StringBuffer();for(int i = 0; i < 26;i++){if(counts[i] !=0){sb.append((char)('a'+i));//转化回字母sb.append(counts[i]);//拼接成a2b3c4这种格式作为map的key}}//通过字符串a1b2c3这种形式作为key获取map value,写入并重新添加到map中String key  = sb.toString();List<String> list = map.getOrDefault(key, new ArrayList<>());list.add(str);map.put(key,list);}return new ArrayList<List<String>>(map.values());}
}

 

http://www.lryc.cn/news/128671.html

相关文章:

  • 设计模式之工厂方法模式(FactoryMethod)
  • python的进度条tqdm库,显示时进度条不换行设置
  • spark的使用
  • 力扣:66. 加一(Python3)
  • Go的标准库Context理解
  • Nuxt3_1_路由+页面+组件+资源+样式 使用及实例
  • Kafka第三课
  • elasticsearch修改es集群的索引副本数量
  • 【SpringCloud】Ribbon定制化配置
  • Mac terminal 每次打开都要重新配置文件
  • el-button实现按钮,鼠标移入显示,移出隐藏
  • uniapp+uview封装小程序请求
  • idea常见错误大全之:解决全局搜索失效+搜索条件失效(条件为空)+F8失灵
  • 【论文阅读】基于深度学习的时序预测——LTSF-Linear
  • 02.FFMPEG的安装和添加硬件加速自编译
  • elementUI 的上传组件<el-upload>,自定义上传按钮样式
  • 【卷积神经网络】卷积,池化,全连接
  • 【SA8295P 源码分析】76 - Thermal 功耗 之 /dev/thermalmgr 相关调试命令汇总
  • 以太网(一):PoE供电
  • 骨传导耳机游泳能戴吗?骨传导游泳耳机哪个牌子好?
  • 18万字应急管理局智慧矿山煤矿数字化矿山技术解决方案WORD
  • 【mysql】MySQL CUP过高如何排查?
  • lua实现http的异步回调
  • 云服务 Ubuntu 20.04 版本 使用 Nginx 配置SSL证书和nginx从HTTP跳转到HTTPS
  • 隧道代理技术解析:为批量数据采集提供强大支持
  • 小程序制作教程:从零开始搭建企业小程序
  • Redis-秒杀
  • 2022年下半年信息安全工程师下午真题及答案解析
  • 【前端|Javascript第5篇】全网最详细的JS的内置对象文章!
  • Python pycparser(c文件解析)模块使用教程