LeetCode_Hot100_哈希_49字母异位词分组_Python

看题目前心里随便想的:

这个是我第一次正式刷LeetCode的第一道题,我完全不懂任何的原理,学习数据结构也有点太久远了,现在都有一些忘记了,所以还是一点点学习吧(嘿嘿)

题目

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

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

示例 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] 仅包含小写字母

拿到题目的想法点(不一定正确):

对列表,先获取第一个词,然后获取每一个字母,A对应0,Z对应23,然后重新排列每一个词,然后两两作比对,如果两个词对应上了,或者多个词对应上了,就输出原来样式的匹配词的列表形式然后这样依次类推(有一个问题就是重复怎么样去掉)。但是这样应该空间复杂度和时间复杂度都拉满了。

--所以我打算看一下题解

题解

思路

字符串处理

(PS:什么是字符串处理,之后学习的时候可以看一下)

Code
class Solution(object):def groupAnagrams(self, strs):d = defaultdict(list)for s in strs: d[''.join(sorted(s))].append(s)return list(d.values())      

我的拆分:
1.创建了一个默认字典“d”

2.for循环,“s”是字符串“strs”的每一个元素(如"tea"

 for s in strs: d[''.join(sorted(s))].append(s),这个里面的“:”表示是for循环的开始,只是吧d[''.join(sorted(s))].append(s)和“:”写到了一起,没有特殊的语法。''.join(list).join()是Python字符串的一个方法,它合并(或“连接”)列表中的所有字符串元素,并在每个元素之间插入指定的分隔符。在你的代码中,分隔符是空字符串'',所以 .join()就直接将列表中的字符串元素组合在一起,没有额外的字符被插入。也就是s取来,然后用无间隔的‘’,连接重新排序好的字符串

比如说‘eat’重新排列是ate。然后在d的这个键 后面的值是原来的s,如果有这个键的列表,就把这个s加入到这个列表当中,如果没有这个列表,就创建一个这个列表,然后把s加入。

2024年3/8日-第一刷

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

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

相关文章

【国产MCU】-CH32V307-独立看门狗(IWDG)

独立看门狗(IWDG) 文章目录 独立看门狗(IWDG)1、独立看门狗介绍2、独立看门狗驱动API介绍3、独立看门狗使用实例在CH32V307中,独立看门狗(IWDG)是一个自由运行的12 位递减计数器,支持7 种分频系数。由一个内部独立的40KHz的RC振荡器(LSI)提供时钟;因为LSI 独立于主时…

2024年AI辅助研发趋势:AI辅助科技发展

目录 前言 一、AI辅助研发的技术进展 &#xff08;一&#xff09;深度学习在研发中的应用 &#xff08;二&#xff09;强化学习在研发中的应用 &#xff08;三&#xff09;生成模型在研发中的应用 &#xff08;四&#xff09;技术如何推动研发效率的提升 二、2024人工智…

华为设备小型园区网方案(有线+无线+防火墙)

&#xff08;一&#xff09;配置有线部分 1.配置LSW2 &#xff08;1&#xff09;创建相关vlan [LSW2]vlan batch 10 3000 &#xff08;2&#xff09;配置连接LSW1的Eth-Trunk1&#xff0c;透传VLAN 10 3000 [LSW2]int Eth-Trunk 1 [LSW2-Eth-Trunk1]port link-type trunk [LSW2…

神经网络的矢量化,训练与激活函数

我们现在再回到我们的神经元部分&#xff0c;来看我们如何用python进行正向传递。 单层的正向传递&#xff1a; 我们回到我们的线性回归的函数。我们每个神经元通过上述的方法&#xff0c;就可以得到我们的激发值&#xff0c;从而可以继续进行下一层。 我们用这个方法就可以得…

已解决com.alibaba.com.caucho.hessian.io.HessianProtocolException异常的正确解决方法,亲测有效!!!

已解决com.alibaba.com.caucho.hessian.io.HessianProtocolException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 解决思路 解决方法 总结 问题分析 在使用基于Hessian协议进行远程过程调用&#xff08;RPC&am…

AES加密——AES加密原理与C++实现AES加密

概述 在密码学中&#xff0c;加密算法被分为两种主要类型&#xff1a;单向加密和双向加密。单向加密算法是不可逆的&#xff0c;主要用于数据完整性验证和密码存储&#xff0c;其中包括MD5、SHA等摘要算法。双向加密算法允许加密和解密过程&#xff0c;分为对称加密和非对称加…

Viper反序列化解析字段不成功问题

问题背景 通过viper解析文件内容映射config一直失败&#xff0c;相关代码如下 type Config struct {DBConf *DBConf toml:"db"RedisConf *RedisConf toml:"redis"WebConfig *WebConfig toml:"app" }type DBConf struct {Read struct {Ds…

通过一篇文章带你玩转git和GitHub

Git和Github的基本用法 前言一、Git和Github的基本用法背景下载安装安装 git for windows安装 tortoise gitgit安装过程中的一些选项 tortoise git汉化教程下载tortoise git汉化安装包安装tortoise git汉化安装包 三、使用 Github 创建项目注册账号创建项目下载项目到本地 四、…

c++ primer中文版第五版作业第十一章

仓库地址 文章目录 11.111.211.311.411.511.611.711.811.911.1011.1111.1211.1311.1411.1511.1611.1711.1811.1911.2011.2111.2211.2311.2411.2511.2611.2711.2811.2911.3011.3111.3211.3311.3411.3511.3611.3711.38 11.1 map中的元素是按 关键字 和 值 的方式成对保存的&…

Excel转pdf

1、excel-内存值--Workbook 转pdf /** * excel To pdf * * param outPath 输出路径 * param workbook excel-内存值 * throws IOException */ public static void excelToPdf(String outPath,Workbook workbook) throws IOException, DocumentException { Document documentnul…

突然发现一个很炸裂的平台!

平时小孟会开发很多的项目&#xff0c;很多项目不仅开发的功能比较齐全&#xff0c;而且效果比较炸裂。 今天给大家介绍一个我常用的平台&#xff0c;因含低代码平台&#xff0c;开发相当的快。 1&#xff0c;什么是低代码 低代码包括两种&#xff0c;一种低代码&#xff0c;…

探索JavaScript宝库:打开基础知识与实用技能之门(数据类型与变量+ 条件与循环+函数与模块+DOM+异常+ES6)

目录 [TOC](目录)一、JavaScript的基础知识1. 数据类型与变量2. 条件与循环3. 函数与模块 二、JavaScript的实用技能1. DOM操作与事件处理2. 异步编程与Promise3. ES6语法 三、JavaScript的重要性与应用场景结语 欢迎阅读本篇博客&#xff0c;我们将深入探讨JavaScript语言的基…

你知道利用神秘顾客工具提升营业厅服务水平

利用神秘顾客工具提升营业厅服务水平是一个有效的策略&#xff0c;以下是一些建议&#xff1a; 1、确定评估指标和标准&#xff1a;在利用神秘顾客工具进行调查之前&#xff0c;需要明确评估服务的指标和标准。这些指标应该根据营业厅的服务特点和重要性&#xff0c;例如服务态…

Java中的常用类(三)

一、正则表达式 正则表达式 regex&#xff0c;全称Regular Expression。正则表达式是一种规则&#xff08;模式&#xff09;匹配语法 可以使用一些正则表达式中的特殊符号来定义一种规则&#xff0c;然后用此规则匹配某个字符&#xff0c;如果字符串与规则匹配则返回true&…

【Docker1】Docker镜像和容器基本操作

Docker基本管理一、Docker概述1、为什么要用到容器&#xff1f;2、Docker是什么&#xff1f;3、Docker的设计宗旨4、容器的优点5、Docker与虚拟机的区别6、Docker的三大核心概念 二、安装Docker1、yum安装2、二进制安装 三、Docker镜像创建与操作1、Docker 镜像操作1.1 搜索镜像…

【JavaEE进阶】Spring中事务的实现

文章目录 &#x1f343;前言&#x1f334;事务简介&#x1f6a9; 什么是事务?&#x1f6a9;为什么需要事务?&#x1f6a9;事务的操作 &#x1f340;Spring 中事务的实现&#x1f6a9;Spring 编程式事务&#x1f6a9;Spring声明式事务Transactional&#x1f6a9;Transactional…

数字人民币钱包(二)

文章目录 前言一 什么是数字人民币钱包&#xff1f;二 怎么开通数字人民币钱包&#xff1f;三 数字人民币钱包有哪些&#xff1f;四 数字人民币钱包升级 前言 上篇文章梳理了什么是数字人民币&#xff0c;及其特征和相关概念&#xff0c;这篇文章来整理下数字人民币钱包。数字人…

selenium常用操作汇总

本文总结使用selenium进行web/UI自动化时&#xff0c;会用到的一些常用操作。 定位元素 driver.find_element_by_xpath()#1、绝对路径 2、元素属性 3、层级和属性结合 4、使用逻辑运算符 driver.find_element_by_id()#根据id定位&#xff0c;HTML规定id属性在HTML文档中必须是唯…

勾股定理(点赞支持!谢谢)

股定理是一个基本的几何定理&#xff0c;在中国&#xff0c;《周髀算经》记载了勾股定理的公式与证明&#xff0c;相传是在商代由商高发现&#xff0c;故又有称之为商高定理&#xff1b;三国时代的蒋铭祖对《蒋铭祖算经》内的勾股定理作出了详细注释&#xff0c;又给出了另外一…

Python hashlib statistics pyecharts模块

文章目录 Python hashlib 模块Python statistics 模块Python pyecharts 模块 Python hashlib 模块 Python 的 hashlib 模块是一个提供不同哈希算法实现的库&#xff0c;比如 MD5、SHA1、SHA256 等。这个模块允许你快速计算给定数据的哈希值&#xff0c;这在需要确保数据完整性…