力扣热门100题之字母异位词分组【中等】

news2024/11/24 20:53:23

题目描述

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

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

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

解法1:字符串拆分后排序,再聚合,最后再使用哈希归类。

/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    let data={}
    strs.forEach((value,index,arr)=>{
        let a=value.split("").sort().join("");
        if(data[a]==undefined){
            data[a]=[value]
        }else{
            data[a].push(value)
        }
    })
    let res=[]
    for(let key in data){
        res.push(data[key])
    }
    return res
};

执行情况

在这里插入图片描述
解法2:求字符串权值,按权值分类

/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    let data={}
    strs.forEach((value,index,arr)=>{
        let a=1;
         map = {
            "a":2,'b':3,'c':5,'d':7,'e':11,'f':13,'g':17,'h':19,'i':23,'j':29,'k':31,'l':37,'m':41,
            'n':43,'o':47,'p':53,'q':59,'r':61,'s':67,'t':71,'u':73,'v':79,'w':83,'x':89,'y':97,'z':101
        };
        for(let i=0;i<value.length;i++){
            a*=map[value.charAt(i)]
        }
        if(data[a]==undefined){
            data[a]=[value]
        }else{
            data[a].push(value)
        }
    })
    console.log(data)
    let res=[]
    for(let key in data){
        res.push(data[key])
    }
    return res
};

执行情况
在这里插入图片描述
解法3:统计字符出现的次数
abbc=>a1b2c1
abcb=>a1b2c1

/**
 * @param {string[]} strs
 * @return {string[][]}
 */
var groupAnagrams = function(strs) {
    let data={}
    strs.forEach((value,index,arr)=>{
       let map={}
       let arr1=[]
       for(let i=0;i<value.length;i++){
           if(map[value.charAt(i)]==undefined){
               map[value.charAt[i]]=1;
               arr1.push(value.charAt(i));
           }else{
               map[value.charAt[i]]++;
           }
       }
       let a=""
       arr1.sort()
       arr1.forEach((v,index,arr)=>{
           a+=v+map[v];
       })
        if(data[a]==undefined){
            data[a]=[value]
        }else{
            data[a].push(value)
        }
    })
    console.log(data)
    let res=[]
    for(let key in data){
        res.push(data[key])
    }
    return res
};

执行情况
在这里插入图片描述

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

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

相关文章

TimescaleDB压缩功能

注&#xff1a;本文翻译自https://legacy-docs.timescale.com/v1.7/using-timescaledb/compression 从1.5版本开始&#xff0c;TimescaleDB支持本地压缩数据的能力。此功能不需要使用任何特定的文件系统或外部软件&#xff0c;并且正如您将看到的&#xff0c;用户可以很容易地…

RDIFramework.NET 快速开发框架 WebEasyUI版本 V6.0发布

1、RDIFramework.NET EasyUI快速开发框架介绍 RDIFramework.NET&#xff0c;基于.NET的快速信息化系统开发、整合框架&#xff0c;为企业或个人快速开发系统提供了强大的支持&#xff0c;开发人员不需要开发系统的基础功能和公共模块&#xff0c;框架自身提供了强大的函数库和…

文心一言大数据模型-文心千帆大模型平台

官网&#xff1a; 文心千帆大模型平台 (baidu.com) 文心千帆大模型 (baidu.com) 模型优势 1、模型效果优&#xff1a;所需标注数据少&#xff0c;在各场景上的效果处于业界领先水平 2、生成能力强&#xff1a;拥有丰富的AI内容生成&#xff08;AIGC&#xff09;能力 3、应用…

【框架篇】Spring Boot 日志

Spring Boot 日志 一&#xff0c;日志用途 尽管一个项目在没有日志记录的情况下可能能够正常运行&#xff0c;但是日志记录对于我们来说却是至关重要的&#xff0c;它存在以下功能&#xff1a; 1&#xff0c;故障排查和调试&#xff1a;当项目出现异常或者故障时&#xff0c;…

14.python设计模式【模板方法模式】

内容&#xff1a;定义一个操作中的算法的骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法某特定步骤。 角色&#xff1a; 抽象类&#xff08;AbstractClass&#xff09;&#xff1a;定义抽象的原子操作&#xff08;钩子…

甘特图 Dhtmlx Gantt

介绍 在一些任务计划、日程进度等场景中我们会使用到甘特图&#xff0c;Dhtmlx Gantt 对于甘特图的实现支持很友好&#xff0c;文档API介绍全面&#xff0c;虽然增强版的收费&#xff0c;但免费版的足以够用。 官网&#xff1a;https://docs.dhtmlx.com/gantt/ 安装dhtml gannt…

ORCLE 导入dmp文件方式记录

一、数据库准备 查询数据库表空间存储位置 sql执行 select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id; 结果示例 创建空间及用户 例如上方查询结果&#xff0c;得到存储位置&#xff1a;/home/oracle/app/oracle/oradata/…

NISP含金量?NISP真的有必要考么?NISP好考吗?NISP二级为什么那么贵?

NISP证书简述 NISP证书三个级别&#xff0c;分别是&#xff1a;一级、二级、三级&#xff08;专项&#xff09; 证书。其每一项资格证书都有不同的优点&#xff0c;但是优点各有 相同&#xff0c;而且拥有NISP二级证书可以免考更换CISP资格证书&#xff0c;那么证书含金量如何下…

Python(Web时代)——初识flask

flask简介 介绍 Flask是一个用Python编写的Web 微框架&#xff0c;让我们可以使用Python语言快速实现一个网站或Web服务。它是BSD授权的&#xff0c;一个有少量限制的免费软件许可。它使用了 Werkzeug 工具箱和 Jinja2 模板引擎。 Flask 的设计理念是简单、灵活、易于扩展&a…

C++STL序列式容器——list容器及其常用操作(详解)

纵有疾风起&#xff0c;人生不言弃。本文篇幅较长&#xff0c;如有错误请不吝赐教&#xff0c;感谢支持。 &#x1f4ac;文章目录 一.list容器基本概念二.list容器的常用操作list构造函数list迭代器获取list特性操作list元素操作list赋值操作list的交换、反转、排序、归并操作…

NSToolbar 及自定义

文章目录 自定义 item添加系统自带 item自定义 item 需要显示图片时,item 不设置title- (void)showWindow1{NSWindowStyleMask windowStyles = NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturiza

基于java的坦克大战游戏的设计与实现--答辨PPT--【毕业论文】

文章目录 本系列校训毕设的技术铺垫PPT主体层次封面页目录页&#xff1a;设计工具与相关技术&#xff1a;系统分析总体设计&#xff1a;详细设计测试结论&#xff1a; 小技巧 本系列校训 互相伤害互相卷&#xff0c;玩命学习要你管&#xff0c;天生我才必有用&#xff0c;我命…

MySQL绿色安装和配置

1、 从地址http://dev.mysql.com/downloads/mysql/中选择windows的版本下载。 2、 mysql各个版本的简介 &#xff08;1&#xff09; MySQL Community Server 社区版本&#xff0c;开源免费&#xff0c;但不提供官方技术支持。 &#xff08;2&#xff09; MySQL Enterprise Ed…

自定义view - 炫酷进度条

1. 思路分析 自定义View步骤&#xff1a; 1>&#xff1a;values__attrs.xml&#xff0c;自定义属性&#xff1b; 2>&#xff1a;在第三个构造方法中&#xff0c;获取自定义属性&#xff1b; 3>&#xff1a;onMeasure&#xff1a;不是非必须的&#xff0c;测量控件大小…

基于SSM的简易图书管理系统

基于SSM的简易图书管理系统说明书 目录 1.系统设计... 1 1.1背景意义... 1 1.2创新性... 1 1.3功能介绍... 1 1.4应用价值... 1 2.系统启动与使用... 2 2.1下载系统压缩包并解压... 2 2.2打开系统文件夹... 3 2.3 SSM必需maven依赖加载和tomcat配置... 4 2.4启动系统... 5 2.5进…

SSM游戏社交网站【纯干货分享,免费领源码05667】

目 录 摘要 1 绪论 1.1 研究意义 1.2研究方法 1.3ssm框架 1.4论文结构与章节安排 2 2 游戏社交网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3数据删除流程 2.3 系统功能分析 2.3.1功能性分析 2.3.2非功能性分析 2…

采集设置为固定值或随机值

网站采集软件怎么采集设置为固定值或随机值&#xff1f; 1. 设置为固定值 例如在简数采集器&#xff0c;进入对应的详情提取器字段数据处理&#xff0c;xpath值为空&#xff0c;然后空内容缺省值设置为固定值&#xff0c;例如示例图的填写为最新资讯&#xff0c;保存完成。 2.…

关于使用easyExcel读取前端文件和MybatisPlus批量插入

关于使用easyExceld读取前端文件和MybatisPlus批量插入 文章目录 关于使用easyExceld读取前端文件和MybatisPlus批量插入实体类监听器开始调用可能出现的问题最后&#xff0c;关于MybatisPlus的批量插入写一个工具类写一个配置类到Mappe中添加这个方法 最近写项目&#xff0c;后…

SUSE 宣布开发与 RHEL 兼容的 Linux 发行版

导读近日消息&#xff0c;SUSE 在今天宣布&#xff0c;它将 fork 公开可用的 Red Hat Enterprise Linux (RHEL)&#xff0c;并将开发和维护与 RHEL 兼容的发行版&#xff0c;所有人都可以不受限制地使用该发行版本。未来几年&#xff0c;SUSE 计划向该项目投资超过 1000 万美元…

分布式训练数据并行极致优化:ZeRO

分布式训练数据并行极致优化&#xff1a;ZeRO 导言 随着 ChatGPT 的爆火&#xff0c;大模型成为了近些年人工智能的研究热点。大模型能力惊艳&#xff0c;但是训练起来成本也不小。大模型&#xff0c;顾名思义&#xff0c;最大的特点就是 “大”。这里的 “大” 通常指的就是…