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

网站开发用例说明江苏省城乡建筑信息网

网站开发用例说明,江苏省城乡建筑信息网,青岛谷歌seo,全局右下角弹窗wordpress1.字母异位词分组 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 方法一&#xff1a;字母排序 class Solution {public List<List<String>> groupAnagr…

1.字母异位词分组

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

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
在这里插入图片描述

方法一:字母排序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 处理边界情况:如果输入数组为空,直接返回空列表if (strs.length == 0) return new ArrayList<>();// 创建哈希表:键为排序后的字符数组(字符串形式),值为该异位词组对应的字符串列表Map<String, List<String>> map = new HashMap<>();// 遍历输入的每个字符串for (String str : strs) {// 将字符串转换为字符数组,以便进行排序char[] chars = str.toCharArray();// 对字符数组进行排序(例如:"eat" → ['a', 'e', 't'])// 排序后相同异位词的字符数组顺序相同,可作为相同的键Arrays.sort(chars);// 将排序后的字符数组转换为字符串,作为哈希表的键// 例如:['a', 'e', 't'] → "aet"String key = String.valueOf(chars);// 检查哈希表中是否已存在该键// 如果不存在,创建一个新的空列表,并与该键关联if (!map.containsKey(key)) {map.put(key, new ArrayList<>());}// 将原始字符串添加到对应键的列表中// 例如:"eat" 和 "tea" 都会被添加到键 "aet" 对应的列表中map.get(key).add(str);}// 将哈希表中的所有值(列表集合)转换为一个大列表并返回// 每个子列表包含一组互为异位词的字符串return new ArrayList<>(map.values());}
}

方法二 字符计数法

在这里插入图片描述

时间复杂度和空间复杂度

在这里插入图片描述
在这里插入图片描述

class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 创建一个哈希表,用于分组异位词// 键:由字母和出现次数组成的字符串(如 "a1b2")// 值:所有符合该模式的字符串列表(如 ["abb", "bab", "bba"])Map<String , List<String>> map =new HashMap<>();// 遍历输入的每个字符串for(String str : strs){ // 创建一个长度为26的数组,统计每个字母的出现次数// counts[0] 对应 'a' 的次数,counts[1] 对应 'b' 的次数,依此类推int[] counts =new int[26]; int length =str.length();// 遍历字符串中的每个字符,统计次数for(int i=0;i<length;i++){// 将字符转换为数组索引:'a' 变成 0,'b' 变成 1,...,'z' 变成 25// 对应位置的计数加1counts[str.charAt(i)- 'a' ] ++;}StringBuilder sb = new StringBuilder();// 生成用于哈希表的键// 按字母顺序拼接每个出现过的字母及其次数(如 "a1b2")for(int i= 0 ; i < 26 ; i++ ){if(counts[i]!= 0){// 添加字母(如 'a')sb.append((char)('a'+i));// 添加该字母的出现次数(如 2)sb.append(counts[i]);}}String key = sb.toString();// 将当前字符串添加到对应的分组中// 如果键不存在,创建一个新的列表// 如果键已存在,获取已有的列表List<String> list=map.getOrDefault(key,new ArrayList<>());list.add(str);map.put(key,list);}// 返回哈希表中所有的值(即所有分组)return new ArrayList<>(map.values());}}
http://www.dtcms.com/a/501566.html

相关文章:

  • 企业网站管理系统破解版餐饮公司网站建设策划书
  • 自己做网站犯法吗程序员做音乐网站
  • 网站效果图确认表h5网站开发
  • c2c电商网站有哪些广陵区建设局网站
  • 教育培训机构招生网站建设网站设计学习
  • 服装商城的网站策划书东莞网站制作公司怎么选择
  • 关于python项目虚拟环境创建和管理的汇总
  • 那些网站可以上传自己做的视频购物网站如何做推广
  • 广告网站设计平面设计班培训入门
  • 惠州市网站制作有限公司网页设计宣传海报素材
  • app开发网站开发洛阳小程序开发
  • 怎样做网站平台赚钱网站的黄金看盘软件
  • 网站建设百度推广开户网络推广外包一年多少钱
  • 网站设计服务表电子商务网站建设的意义是什么意思
  • 网站添加属性成都旅游景点排名前十名
  • 基于搜索引擎的网站推广方式精神文明建设网站
  • 直播网站开发费用百度seo优化多少钱
  • 网站系统建设的目标网站域名禁止续费
  • 阿里备案成功后怎么做网站佛山网站建设专业主修课程
  • 做搜狗pc网站软件太原seo网络优化招聘网
  • 如何判断网站做的关键词用哪个语言做网站比较好
  • 中山皇冠建设开发有限公司网站网站搭建的流程及费用是多少?
  • 网站内容优化的重要性哪些网站做的好看的
  • asp网站怎么安装服务器 免费
  • com0com+hub4com虚拟串口对,读写com15口的同时能够做到监听此端口
  • 电子商务网站建设流程品牌宝网站认证
  • 用上海注册的公司建的网站wordpress 报名 插件
  • 郑州网站制作网页wordpress 外企模板
  • 淘宝客网站一定要备案吗网站设计与制作的流程
  • 宁乡网站建设uuv9微信小程序开发费用一览表