刷题记录6.24

news2024/11/16 15:57:12

438. 找到字符串中所有字母异位词icon-default.png?t=N7T8https://leetcode.cn/problems/find-all-anagrams-in-a-string/

这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。

对于这个我们可以转化成计算字母出现的频率,如果频率一致即符合要求。

这道题的思路:滑动窗口

根据题目要求,我们需要在字符串 s 寻找字符串 p 的异位词。

因为字符串 p 的异位词的长度一定与字符串 p 的长度相同,所以我们可以在字符串 s 中构造一个长度为与字符串 p 的长度相同的滑动窗口,并在滑动中维护窗口中每种字母的数量当窗口中每种字母的数量与字符串 ppp 中每种字母的数量相同时,则说明当前窗口为字符串 ppp 的异位词。(这个思路真的很妙

可以使用数组来存储字符串 ppp 和滑动窗口中每种字母的数量

将字符转成数字0~26,在存储时将字符-‘a'.charCodeAt()

charCodeAt()是一个字符串方法,用于获取指定位置字符的Unicode编码,返回一个表示给定索引处字符的Unicode值的整数。

str.charCodeAt(index)

其中,`str`是要进行操作的字符串,`index`是要获取字符编码的位置索引。

索引从0开始,表示字符串中的第一个字符。

正确用法

  1. 直接在字符串中使用:

    var str = "Hello"; console.log(str.charCodeAt(0)); // 输出:72 (H的Unicode编码)

    需要注意的是,如果提供的索引超出字符串的长度范围,`charCodeAt()`将返回NaN(非数字)】

  2. 在单个字符上使用:

var char = 'A'; console.log(char.charCodeAt(0)); // 输出:65 ('A'的Unicode编码)

(单个字符时候也可以不写0)

  1. 通过获取字符串中的一个字符再使用:

    var str = "World"; 
    var char = str.charAt(2); // 获取字符串中的第三个字符 'r' 
    console.log(char.charCodeAt(0)); // 输出:114 ('r'的Unicode编码)

言归正传,对于题目,初始时可以做判断,当字符串 s 的长度小于字符串 p 的长度时,字符串 s 中一定不存在字符串 p 的异位词,可以直接返回掉。

但是因为字符串 s 中无法构造长度与字符串 p 的长度相同的窗口,所以这种情况需要单独处理

这里面可以注意一下,滑动窗口滑动处理的妙处。

遍历时,当前 i 指的是滑动窗口前一个字符,往后滑动时要删除前一个字符的记录,加上窗口后的字符记录。

思路捋清楚就很简单了。

判断是否相同时,只需要将记录字母出现频率的数组用toString转为字符串对比即可。

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

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

相关文章

微信小程序修改应用名称

1、修改名称(10分钟即可生效) 账号管理员 2、修改icon(如果logo带有名称则需要修改)

【单片机毕业设计选题24025】-基于ESP32的车联网控制器设计

系统功能: 这个设计采用ESP32芯片作为核心控制器,搭配其它传感器,电源模块以及通信模块,用于实现车联网中的MQTT数据收发控制. ESP32芯片负责接收电路模块和相关传感器的数据,包括模拟信号,按键触发信号等, 随后ESP32进行数据处理并通过MQTT协议与通信模块协同工作将数据上传至…

短剧小程序源码:打造个性化的娱乐体验

在数字化媒体时代,短剧作为一种新兴的娱乐形式,正迅速受到全球用户的喜爱。短剧小程序源码作为这一趋势下的产物,为短剧的创作、分享和观看提供了一个全新的平台。本文将深入探讨短剧小程序源码的关键特性及其在全球化娱乐市场中的潜力。 一…

同城代驾小程序代驾平台APP代驾软件开发代驾JAVA系统源码

市场分析 随着现代社会的快速发展,人们的生活节奏日益加快,出行需求也愈发多样化。在繁忙的都市生活中,代驾服务以其便捷、安全的特点受到了广大用户的青睐。为了满足这一市场需求,代驾系统基础功能软件应运而生,通过…

Windows重新安装安全中心解决白屏问题

重新安装Windows安全中心(Windows Security Center)涉及多个步骤,包括重置Windows安全功能和重新安装Windows安全应用。以下是详细的步骤: 1. 通过PowerShell重置Windows安全中心 打开PowerShell: 在开始菜单中搜索“PowerShell”…

AIGC遇上ChatGPT,互联网公司的创意设计师,还能做什么?

随着科技的日新月异,AIGC(人工智能生成内容)和ChatGPT等AI技术的涌现,为互联网公司的创意设计师们描绘了一幅充满挑战与机遇的新图景。在这个数字化、智能化的新时代,创意设计师们不仅要保持敏锐的审美眼光和源源不断的…

精细化视频剪辑解决方案,数字人接入定制开发

为满足企业对于高质量、高效率视频制作的需求,美摄科技推出了全新的精细化视频剪辑解决方案。凭借多端专业的视频编辑工具、模板设计工具以及数字人接入定制开发服务,美摄科技为企业提供了一站式的视频剪辑体验,助力企业轻松打造专业级视频内…

社交风潮塑造者:探索用户在Facebook的影响力

在当今数字化社会中,Facebook不仅是人们社交互动的主要平台,更是塑造社交风潮和文化趋势的重要力量。本文将从另一个角度深入探讨用户在Facebook上的影响力,探索其如何通过个人行为和互动,影响和改变社会的各个方面。 个人表达和内…

【大数据技术原理与应用(概念、存储、处理、分析与应用)】第1章-大数据概述习题与知识点回顾

文章目录 单选题多选题知识点回顾几次信息化浪潮主要解决什么问题?信息科技为大数据时代提供哪些技术支撑?数据产生方式有哪些变革?大数据的发展历程大数据的四个特点(4V)大数据对思维方式的影响大数据有哪些关键技术&…

C++调试技巧总结

1.调试准备 常用调试 Crash调试 调试信息: Windows系统:符号单独PDB文件/链接时生成,从外部的符号服务器下载。(微软) LInux: 调试符号与目标模块在一个文件内,编译时产生调试信息。模块发布时…

OurBMC大咖说丨第5期:BMC开发中的非标准化问题探讨

栏目介绍:"OurBMC大咖说" 是由 OurBMC 社区精心策划的线上讲座栏目,邀请 BMC 相关领域大咖共同探讨 BMC 全栈技术的发展趋势、挑战和机遇。无论你是初学者还是资深从业者,"OurBMC大咖说" 都将为你提供一个宝贵的学习和交…

MobileViT v3 论文解读

paper:MobileViTv3: Mobile-Friendly Vision Transformer with Simple and Effective Fusion of Local, Global and Input Features official implementation:GitHub - micronDLA/MobileViTv3 出发点 MobileViT v1通过结合CNN和ViT的优势,…

用户是如何访问网站的?

由于IP地址不方便记忆并且不能显示地址组织的名称和性质,人们设计出了域名,并通过域名系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直…

数字心动+华为运动健康服务 使用体验指导

一、应用介绍 “数字心动”是一个体育生态平台APP,践行“体育大健康娱乐数字营销”模式,打造深度融合体育平台。APP集跑步运动记录、赛事活动报名、成绩/大众等级证书查询等多功能于一体,采取“线上线下”模式,结合协会、行业、品…

安泰电压放大器有什么作用

电压放大器是一种电子器件,它能够将输入信号的电压增大到所需的输出电压水平。电压放大器在电子电路设计中起到了至关重要的作用,下面将详细介绍电压放大器的作用。 信号放大作用:电压放大器主要作用是放大输入信号的电压,使其具有…

vue3组件通讯-介绍

简介 Vue 3 引入了多种强大的功能和改进,其中包括增强的组件通信机制。了解这些机制对于构建复杂、可维护的应用程序至关重要。下面,我们将介绍在 Vue 3 中组件通信的几种方法。 通讯类型 父子组件通信上下级通信(不仅父子级)兄…

什么牌子的开放式耳机性价比高?2024超靠谱品牌推荐!

开放式耳机最近几年已经成为音乐爱好者们的一个新的选择。它们从最初的基本音质发展到了现在的高解析度,不断的升级。这类耳机开放式、安全的性能和舒适的佩戴体验,无论你是在街上漫步还是在家中享受安静的时光,都能够得到很好的体验。在众多…

Go语言之控制结构

个人网站: http://hardyfish.top/ 免费书籍分享: 资料链接:https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码:3899 免费专栏分享: 资料链接:https://url81.ctfile.com/d/57345181-6…

HarmonyOS Next开发学习手册——通过startAbilityByType拉起垂类应用

使用场景 开发者可通过特定的业务类型如导航、金融等,调用startAbilityByType接口拉起对应的垂域面板,该面板将展示目标方接入的垂域应用,由用户选择打开指定应用以实现相应的垂类意图。垂域面板为调用方提供统一的安全、可信的目标方应用&a…

Qt-Advanced-Docking-System示例程序

写了一些简单的示例程序,帮助我更好地使用和了解Qt-Advanced-Docking-System 1.写一个如图页面布局的程序 m_pDockMangernew ads::CDockManager(this);this->setCentralWidget(m_pDockManger);ads::CDockWidget* centerDockWidgetnew ads::CDockWidget("中…