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

LeetCode 热题100-2

字母异位词分组

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

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

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


class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:hashmap = {}res = []o=0for i in strs:# 字符串没有排序方法,所以要自己写,sort函数只能排序列表ii = list(i)ii.sort()i_sort = "".join(ii)if i_sort not in hashmap:hashmap[i_sort] = oo+=1res.append([i])else:res[hashmap[i_sort]].append(i)return res

例如ate,eat,他们字母元素数都是一样的,那么解题思路是对于每个元素都进行字母的排序,随后进入hashmap中去找,看是否能够找到,如果能够找到,那么在res数组中按照类别的索引去添加该元素;若找不到,则在hashmap中创建该排序后的元素类;

如:ate -> "aet"->存放在hashmap[“aet”] = 0

        tan ->"ant"->存放在hashmap["ant"] = 1

res数组类似

ps:这道题目同时了解了个知识点,python的sort()只是用于列表排序的,对于字符串不适用,所以要用字符串想排序的话,就要先将字符串转换成为列表,然后再排序,最后拼接,比如:

str_l =  list(str)

str_l.sort()

str_s = "".join(str_l)

即可完成拼接了

join函数可以看python join函数_Python join()函数原理及使用方法-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unity引擎加密方案解析
  • Linux装ifort环境
  • el-select选项框样式修改
  • 【cv::triangulatePoints】其中的投射矩阵P(3x4)是怎么得到的?(内外参数K[R|t]到最终矩阵的变换过程)
  • 【ESP32】在原理图中为什么要在VCC处加几个电容
  • 写给非机器学习人员的 embedding 入门
  • 【FreeRTOS】队列实验多设备玩游戏(思路)
  • C++学习笔记----2、使用C++进行优雅编程(七)----使用常数
  • 【模电笔记】——反馈放大电路
  • 如何妙用哈希表来优化遍历查找过程?刷题感悟总结,c++实现
  • shuishuishui
  • ubuntu24.04lts cmake编译 opencv4.5.4 contrib的一些问题
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • Python 设计模式之享元模式
  • RecyclerView的缓存机制(面试常客)
  • 【刷算法】从上往下打印二叉树
  • 【知识碎片】第三方登录弹窗效果
  • chrome扩展demo1-小时钟
  • ESLint简单操作
  • Gradle 5.0 正式版发布
  • MobX
  • react-native 安卓真机环境搭建
  • Shadow DOM 内部构造及如何构建独立组件
  • Spring Boot MyBatis配置多种数据库
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 从零开始的无人驾驶 1
  • 记一次和乔布斯合作最难忘的经历
  • 简析gRPC client 连接管理
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 整理一些计算机基础知识!
  • #define与typedef区别
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #传输# #传输数据判断#
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (译)计算距离、方位和更多经纬度之间的点
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (自用)网络编程
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET下的多线程编程—1-线程机制概述
  • 。。。。。
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [<MySQL优化总结>]
  • [12] 使用 CUDA 进行图像处理
  • [145] 二叉树的后序遍历 js
  • [240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能