力扣:49. 字母异位词分组(Python3)

题目:

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

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

来源:力扣(LeetCode)
链接:力扣

示例:

示例 1:

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


示例 2:

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


示例 3:

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

解法:

首先将输入的每个单词根据字母顺序排序,转为元组,因为元组是可哈希的,接着将所有排序后的单词转为集合,因为用set函数转,set只接收可哈希对象,所以之前用元组。因为每个单词已根据字母顺序排过序,所以单词异位词此时是一样的,使用集合去重,然后转为列表。设结果存放在result,result初始化为二维列表,每个元素是空列表,元素个数为集合长度。然后开始往result中加入结果,遍历strs,将每个单词根据字母顺序排序,然后去列表中查找所在位置,因为要使用index内置函数,所以上面将集合转为列表。得到列表下标后将原单词加入result对应下标的列表中。

知识点:

1.可哈希:int、float、str、tuple是可以哈希的,list、set、dict是不可哈希的。

2.tuple(iterable):iterable是序列,集合或迭代器对象,创建一个元组对象。

代码:

class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:list1 = list(set(map(lambda x: tuple(sorted(x)), strs)))result = [[] for _ in range(len(list1))]for index, word in enumerate(list(map(sorted, strs))):result[list1.index(tuple(word))].append(strs[index])return result

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础:用tcpdump抓包

简介 网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。 tcpdump - dump traffic on a network 例子 不指定任何参数 监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常…

Java基础入门篇——自增自减运算符(八)

自增()和自减(--)运算符在Java中用于增加或减少变量的值。这些运算符非常有用,特别是在循环和计数器中。 一、自增运算符() 自增运算符将变量的值增加1。 前置自增:variable。先增…

地图 SDK gitlab 测试代码环境配置

文章目录 1、Gradle 插件版本和 Gradle 版本2、NDK 路径3、JDK 版本4、修改变量5、重新 BuildQ&A: test 用例启动之后问题问题描述 拉下项目的 dev 分支,然后依赖的 mapsdk-base 也完成下载 ,之后就是Android Studio 配置环境 1、Gradle …

JDBC(常用类与接口、实现数据库的增删查改)

目录 1.Connection接口常用方法 2.DriverMange类 3.Statement接口 4.实现表的数据更新(增、改、删) 5.实现数据查找(ResultSet接口) 6.PreparedStatement 数据更新 1.Connection接口常用方法 用来与数据库连接的对象&#xff…

MediaCodec创建对应解码器

媒体编解码API使用示例 //获取相关格式文件的内容信息,如轨道数量、获取MIME信息、视频的高度与宽度、语言格式、播放总时长等 MediaExtractor mediaExtractor new MediaExtractor(); try {mediaExtractor.setDataSource(path); // 设置数据源 } catch (IOExcept…

apt、aptitude、apt-get/apt-cache语法的区别

apt句法 aptitude句法 apt-get/apt-cache语法 描述 apt update aptitude update apt-get update 更新包存档元数据 apt install foo ap

【Spring】Spring AOP 初识及实现原理解析

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE进阶 目录 文章目录 一、初识AOP 1.1 什么是AOP? 1.2 AOP的组成 1.2.1 切面(Aspect) 1.2.2 切点(Pointcut) 1.2.3 连接点&…

Open3D(C++) 角度制与弧度制的相互转换

目录 一、弧度转角度1、计算公式2、主要函数3、示例代码4、结果展示二、角度转弧度1、计算公式2、主要函数3、示例代码4、结果展示三、归一化到(-PI,PI)1、主要函数<

blender基础认识(选项开关、工具栏、视图等)

文章目录 引言一、大纲选项开关和保存启动文件1. 大纲选项1. 禁用选中2. 视图影藏3. 视图禁用4. 渲染禁用 2. 保存启动文件 二、工具栏和侧边栏1. 左侧工具栏2. 右侧工具栏 三、视图1. 视角2. 缩放3. 拖拽4. 摄像机视角5. 切换正交视图6. 局部视图7. 显示隐藏 四、添加删除物体…

【DMA】如何保证 DMA 和 cache 的一致性

一方面&#xff0c;当 CPU 要从cache 读取数据时&#xff0c;会先检查cache是否命中&#xff0c;如果命中就直接返回&#xff0c;此时便不再访问内存&#xff1b;另一方面&#xff0c;DMA 在 向内存写入数据。这样一来就造成了DMA 传输的内容和cache中缓存的内容不一致。 DMA 向…

“深入剖析JVM内部机制:探秘Java虚拟机的运行原理“

标题&#xff1a;深入剖析JVM内部机制&#xff1a;探秘Java虚拟机的运行原理 摘要&#xff1a;本文将深入剖析Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;探秘其运行原理。我们将从JVM的结构、内存管理、垃圾回收、即时编译等方面展开讨论&#xff0c;并通过…

关于echarts遇到的一些问题

1.echarts监听legend&#xff0c;动态设置legend属性无效 动态更改legend中的icon&#xff0c; myChart.setOption(option&#xff09;失效&#xff0c;但是设置局部就生效 myChart.on(legendselectchanged, function (params) {if (params.selected[params.name]) {data1[dat…

C++ 多态性——纯虚函数与抽象类

抽象类是一种特殊的类&#xff0c;它为一个类族提供统一的操作界面。抽象类是为了抽象和设计的目的而建立的。可以说&#xff0c;建立抽象类&#xff0c;就是为了通过它多态地使用其中的成员函数。抽象类处于类层次的上层&#xff0c;一个抽象类自身无法实例化&#xff0c;也就…

VUE+view table.exportCsv()导出.csv文档时如何防止数据格式为科学计数

当使用table.exportCsv()方法导出数据时&#xff0c;出现科学计数法问题&#xff0c;像电话号码&#xff0c;身份证号码等&#xff0c;当数据大于15位后面的会用0替代。 针对这一问题&#xff0c;解决方法如下&#xff1a;就是再数字前加上制表符“\t”注意双引号&#xff0c;…

前端技术基础-css

前端技术基础-css【了解】 一、css理解 概念&#xff1a;CSS&#xff1a;C(cascade) SS(StyleSheet) &#xff0c;级联样式表。作用&#xff1a;对网页提供丰富的视觉效果&#xff0c;进行美化页面(需要在html页面基础上)样式规则&#xff1a;样式1&#xff1a;值1;样式2&…

c++如何实现类名创建类对象(反射)

1. 适用场景 c开发过程中使用工厂模式创建各种类对象的时候可能需要写一堆的’if-else’函数来根据传入的参数类型创建不同的类对象; 尤其是多态的情况下返回基类指针的情况. 例如: class B -> class A // B继承A class C -> class A // C继承AA *Create(type) {if (ty…

0基础学习VR全景平台篇 第79篇:全景相机-泰科易如何直播推流

泰科易科技是中国的一家研发全景相机的高科技公司&#xff0c;前不久&#xff0c;在2020世界VR产业大会上发布了新一代5G VR直播影像采集终端--360starlight。以其出色的夜景成像效果和一“部”到位的直播方案重新定义了VR慢直播相机&#xff0c;对行业具有高度借鉴意义。 本文…

【工具插件类教学】电脑端移动端缩放大图自适应Simple Zoom

目录 简介 1.创建Canvas并设置 2.使用预制体Zoom 3.商店地址 简介 特点: •易于使用和高度可定制。 •支持鼠标(桌面)和触摸(移动)。 •指定最小和最大缩放的限制。 •缩放指针(鼠标/手指)或屏幕上预定义的自定义位置。 •变焦时使用夹紧/弹性变焦类型。 •定义缩…

MySQL插入数据的方法

插入数据方法&#xff1a; 1.insert into 表 values(value1, value2, value3....) 2.insert into 表 (字段1&#xff0c; 字段3&#xff0c; 字段5) values(value1, value2, value3) 3.insert into 表 [(字段1&#xff0c; 字段2&#xff0c; 字段3....)] values(value1, val…

【CSS】网格布局(简单布局、网格合并、网格嵌套)

文章目录 CSS网格布局&#xff08;Grid Layout&#xff09;1. 简单布局2. 网格合并3. 网格嵌套4. 总结 CSS网格布局&#xff08;Grid Layout&#xff09; CSS网格布局&#xff08;Grid Layout&#xff09;是一种强大且灵活的CSS布局系统&#xff0c;允许开发者以网格形式组织和…