【Leetcode】49. 字母异位词分组

2024-01-09

49. 字母异位词分组

题目链接

【Leetcode】49. 字母异位词分组

代码一


func groupAnagrams(strs []string) [][]string {
	// 存放字典序相同的字符串切片
	hash := map[string][]string{}
	// 枚举给定的字符串数组,如果字符串的字典序相同,则放到对应的切片中
	for _, str := range strs {
		// 把字符串转成byte数组
		arr := []byte(str)
		// 用内置库函数对切片进行排序
		sort.Slice(arr, func(i, j int) bool { return arr[i] < arr[j] })
		// 把字节切片转成字符串得到字典序排序后的字符串
		sortedStr := string(arr)
		hash[sortedStr] = append(hash[sortedStr], str)
	}

	//	如果字符串按照字典序排序之后,两个字符串相等,则为字母异位词
	ans := make([][]string, 0, len(hash))
	// 枚举map,把所有切片放到结果中
	for _, arr := range hash {
		ans = append(ans, arr)
	}
	return ans
}

代码二

时间复杂度较高


func groupAnagrams(strs []string) [][]string {
	// 存放字典序相同的字符串切片
	hash := map[string][]string{}
	// 枚举给定的字符串数组,如果字符串的字典序相同,则放到对应的切片中
	for _, str := range strs {
		sortedStr := Sort(str)
		hash[sortedStr] = append(hash[sortedStr], str)
	}

	//	如果字符串按照字典序排序之后,两个字符串相等,则为字母异位词
	ans := [][]string{}
	// 枚举map,把所有切片放到结果中
	for _, arr := range hash {
		ans = append(ans, arr)
	}
	return ans
}

// 对单个字符串进行字典序排序
func Sort(str string) string {
	// 把字符串的每个字符拆成单个字符串放到字符串切片arr
	arr := []string{}
	for _, val := range str {
		arr = append(arr, string(val))
	}
	// 调用sort函数,对字符串切片进行排序
	sort.Strings(arr)
	// 把排好序之后的字符串重新拼接成一个字符串
	sortedStr := ""
	for _, val := range arr {
		sortedStr += val
	}
	// 返回升序排序好的字符串
	return sortedStr
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Leetcode】49. 字母异位词分组 的相关文章

随机推荐

  • Rails4:image_url 未在 scss 中生成摘要

    我不明白为什么我的 css 文件没有使用辅助方法将摘要附加到我的资产中image url 我的资产已正确预编译 并且文件确实包含摘要 我还可以手动访问它们 使用摘要的网址 最奇怪的是 一开始它是有效的 这是我的配置 config asset
  • 实体框架预加载过滤器

    我有一个简单的查询 我想这样做 1 Products have ChildProducts其中有PriceTiers2 我想得到所有Products有一个Category with a ID1 和Display true 3 我想包括所有C
  • 视图的内边距和边距之间的区别

    视图的边距和填充有什么区别 帮助我记住的含义padding 我想到一件有很多的大衣厚棉垫 我在外套里面 但我和我的棉衣是在一起的 我们是一个单位 但要记住margin 我想 嘿嘿 给我一点余地吧 这是我和你之间的空白 不要进入我的舒适区 我
  • jOOQ 和缓存?

    我正在考虑从 Hibernate 迁移到 jOOQ 但我不确定是否可以不使用缓存 休眠有一个一级 二级缓存 https stackoverflow com questions 337072 what are first and second
  • Apache CXF LoggingInInterceptor 已弃用 - 可以使用什么替代?

    我在 Spring Boot 的帮助下使用 Apache CXFcxf spring boot starter jaxws3 2 7版本的插件 我的目的是自定义日志拦截器 但是当我创建以下类时 public class CustomLogg
  • 在 C++ 中打印浮点数的二进制表示形式[重复]

    这个问题在这里已经有答案了 可能的重复 C 中浮点数转换为二进制 https stackoverflow com questions 2746380 float to binary in c 我想在 C 中打印出浮点数的二进制表示形式 不太
  • 将 MongoCursor 从 ->find() 转换为数组

    jokes collection gt find 我如何转换 jokes进入数组 你可以使用 PHP 的iterator to array http php net manual en function iterator to array
  • Roundcube问题:与存储服务器的连接失败

    我在 Roundcube 中收到此错误 连接到存储服务器失败 行 我已经检查了所有内容 配置 数据库用户名密码 服务器详细信息都是干净的 谁能告诉我可能是什么问题 这里我给出了整个配置文件
  • asp.net 中的 Convert.ToDateTime 问题

    我有一个应用程序在西班牙服务器上运行没有任何问题 当我将应用程序上传到在线服务器 英文窗口 时 我收到 Convert ToDateTime 和 Convert ToInt32 的异常 类型为 输入字符串不是有效的 Datetime Int
  • 在 Symfony/Doctrine 中删除记录时执行一些清理

    将 Symfony 1 4 5 与 Doctrine 结合使用 我有一个模型 其中包含上传的图像作为其中一列 创建和更新记录很好 使用 doSave 方法来处理上传和对文件的任何更改 我遇到的问题是 如果记录被删除 我希望它也删除关联的文件
  • 如何控制表格视图滚动速度?

    我想要控制表视图滚动速度 如何以编程方式做到这一点 请帮忙 提前致谢 简森 雅各布 您可以设置tableView decelerationRate财产 它是一个浮点值 决定用户抬起手指后的减速率 并且 您的应用程序可以使用UIScrollV
  • iPhone - 将字典写入文件:处理错误

    使用以下命令将 NSDictionary 保存到文件时 BOOL writeToFile NSString path atomically BOOL flag 可以返回 YES 或 NO 有一些编写接受 NSError 参数的文件的方法 对
  • JQuery - 摆脱 .serialize() 中的 %5B%5D

    我正在使用 AJAX 提交序列化表单 数据传递到action php最终包含 5B 5D 而不是 是否有办法取回 或者数据能够以相同的方式处理 即像数组一样 action php 该表格通过以下方式序列化 var form data for
  • 如何使用 Tensorflow 2/ Keras 保存和恢复训练具有多个模型部分的 GAN

    我目前正在尝试添加一个功能来中断和恢复通过此示例代码创建的 GAN 的训练 https machinelearningmastery com how to develop an auxiliary classifier gan ac gan
  • BeautifulSoup 获取列表的 href - 需要简化脚本 - 替换多处理

    我有以下汤 下一个 我想从中提取 href some url 我想提取 href some url 以及此页面上列出的页面的完整列表 https www catholic hierarchy org diocese laa html htt
  • 【计算机开题报告】题库管理系统

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 国内外研究现状 题库管理系统的发展现状 试题库一词 源于20世纪60年代的英国 是在一个教育研究课题上提出的 试题库是指测验试题的有序集合 是适合于具备一
  • 【计算机开题报告】基于JAVA的酒店管理系统的设计与实现

    1 毕业设计 论文 综述 随着社会经济和科技的迅速发展 人们对衣食住行的要求也逐渐提高 酒店 宾馆在服务行业中扮演着越来越重要的角色 本课程设计的内容旨在以管理系统的方式给人们出行提供酒店预订服务 从而能够更方便快捷的帮助酒店工作人员办理客
  • 手机未来发展的趋势与挑战

    随着科技的飞速发展 手机已经成为我们生活中不可或缺的一部分 然而 随着5G 人工智能等新技术的不断涌现 手机的未来发展面临着前所未有的机遇和挑战 本文将探讨手机未来发展的趋势与挑战 一 手机未来发展的趋势 5G技术的普及 随着5G技术的不断
  • 鸿鹄云商B2B2C:JAVA实现的商家间直播带货商城系统概览

    saas云平台 打造全行业全渠道全场景的saas产品 为经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定压倒
  • 【Leetcode】49. 字母异位词分组

    49 字母异位词分组 题目链接 代码一 代码二 题目链接 Leetcode 49 字母异位词分组 代码一 func groupAnagrams strs string string 存放字典序相同的字符串切片 hash map string