刷题记录6.24

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转为字符串对比即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

星戈瑞CY5-DBCO在纳米粒子载体标记与追踪中的应用

随着纳米技术的飞速发展,纳米粒子载体在生物医学领域的应用增多。这些载体能够递送药物、基因和其他生物活性分子到特定的细胞或组织。为了有效监测纳米粒子载体在体内的分布、行为以及与生物分子的相互作用,荧光标记技术成为了一个常见工具。其中&#…

要求全国70%中医院设置康复科!康复科门诊服务这样建设!

近日,国家中医药管理局印发《国家中医药管理局关于进一步加强中医医院康复科建设的通知》提出,中医医院应根据当地人口规模及中医药康复服务需求设置康复科并作为独立科室进行建设和管理。有条件的二级以上中医医院应当按照《中医医院康复科推荐配置标准…

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

使用Dropout大幅优化PyTorch模型,实现图像识别

大家好,在机器学习模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络时,过拟合具体表现在模型训练数据损失函数较小,预测准确率较高,但是在测…

AI小白的大模型探险之旅:从入门到精通的奇妙旅程

前言 在数字化浪潮汹涌的时代,人工智能(AI)技术如同一位神秘的魔法师,以其强大的力量改变着世界的面貌。而在这魔法世界中,大模型技术无疑是那颗璀璨的明珠,引领着AI技术的新潮流。今天,我们就…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Semaphore做同步使用

信号量作为同步使用 创建一个Semaphore对象,并指定一个初始的计数值(通常称为“许可”或“令牌”的数量)。这个计数值表示当前可用的资源数量或可以同时访问共享资源的线程数。当一个线程需要访问共享资源时,它会尝试从Semaphore…

Sectigo或RapidSSL DV通配符SSL证书哪个性价比更高?

在当前的网络安全领域,选择一款合适的SSL证书对于保护网站和用户数据至关重要。Sectigo和RapidSSL作为市场上知名的SSL证书提供商,以其高性价比和快速的服务响应而受到市场的青睐。本文将对Sectigo和RapidSSL DV通配符证书进行深入对比,帮助用…

怎么免费SSL证书有效期越来越短了

其实说到SSL证书,很多人的第一印象都是免费SSL证书,主要是由于国内网络发展的历程相对于国外而言较晚,SSL证书的普及程度也远没有国外那么广泛,因此在国内前期的基础SSL证书会由各个云厂商和CA免费提供,之前在国内的一…

谨慎投稿!On Hold 期刊影响因子不降反升?附目前On Hold期刊影响因子变化表

【SciencePub学术】大家有没有发现一个现象,就是现在“on hold”期刊貌似越来越频繁了。一旦期刊在发文量、国人占比、引用异常、撤稿频繁等方面稍微碰触红线,便会喜提一个“on hold”标识~ 近日,2023JCR正式发布,今天小编带大家看…

Ansible自动化运维,(1)模块

ansible是基于Python语言实现的,模块化:调用特定的模块完成特定的任务,支持自定义模块,可使用任何编程语言写模块(账号,软件等)。部署简单,基于python和SSH,相对安全,基于OpenSSH。 …

论文阅读MVBench: A Comprehensive Multi-modal Video Understanding Benchmark

摘要(Abstract): 论文介绍了MVBench,这是一个全新的多模态视频理解基准测试,旨在评估多模态大型语言模型(MLLMs)在视频理解方面的能力。 目前许多基准测试主要集中在静态图像任务的空间理解上,而忽视了动…

会声会影2024免费版下载无需激活码序列号

亲爱的影像爱好者们,今天我要和大家分享的是一款让我彻底着迷的软件——会声会影2024!自从用了它,我的视频编辑技能简直突飞猛进,每次上传作品到小红书都能收获满满的赞👍。接下来,就让我带你一起探索这个神…

华为VPN通过安当ASP身份认证系统快速实现认证

华为VPN通过安当ASP身份认证系统实现认证的过程,主要涉及到Radius OTP(一次性密码)认证技术的使用。以下是实现这一过程的详细步骤: 1. 前提条件: 确保系统已经激活了Radius模块,并在安全设置中的RADIUS配…

ppdetection-2.7

1, pip install -r requirement.txt 2、 ValueError: paddle.load can not parse the file:C:\Users\HX/.cache/paddle/weights\deepsort_pcb_pyramid_r101.pdparams. 重新下载模型 3、 declarative() got an unexpected keyword argument看一下参数是否写对,比如…

Python文本挖掘数据分析——竞争分析(1)

文章目录 前言项目背景与目标品类分布分析数据准备与处理查看数据类目作图查看占比的不同 适用对象作图查看适用对象占比 产品结构分析对商品分类汇总定义作图函数拜耳安速科凌虫控 前言 数据说明: 项目背景与目标 该项目旨在分析三个品牌(拜耳、安速、科凌虫控&…

lambdastreammaven

1.Lambda &#xff08;1&#xff09;Java 8 Lambda 表达式 在 Java 8 以前&#xff0c;若我们想要把某些功能传递给某个方法&#xff0c;总要去写内部类 或匿名内部类类。代码示例&#xff1a; list.sort(new Comparator<User>() { Override public int compare(User …

java实现一个图的最短路径算法

import java.util.*; //java实现一个图的最短路径算法 public class Test_34 { // 定义一个常量INF&#xff0c;表示无穷大。private static final int INF Integer.MAX_VALUE; // 定义一个方法dijkstra&#xff0c;接受一个二维数组图和一个起始节点作为参数。public s…

apk反编译修改教程系列-----去除apk软件更新方法步骤列举 记录八种最常见的去除方法

在前面几期博文中 有说明去除apk软件更新的步骤方法。我们在对应软件反编译去除更新中要灵活运用。区别对待。同一个软件可以有不同的去除更新方法可以适用。今天的教程对于软件更新去除列举几种经常使用的修改步骤。 通过基础课程可以了解 1-----软件反编译更新去除的几种常…

经典游戏案例:仿植物大战僵尸

学习目标&#xff1a;仿植物大战僵尸核心玩法实现 游戏画面 项目结构目录 部分核心代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using Random UnityEngine.Random;public enum…

CSS打印设置页眉页脚

之前写过一篇文章CSS实现自动分页打印同时每页保留重复的自定义内容&#xff0c;可以实现window.print()打印时多张页面保留相同的内容&#xff08;如header、footer&#xff09;&#xff0c;但其并不是真正意义上的页眉页脚&#xff0c;footer内容在最后一张页面未撑满时不能置…