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

leetcode:找到字符串中所有字母异位词

 题目: 

        给定两sp中所有p异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。

示例 :

输入

输出

解释
s = "cbaebabacd", p = "abc"
[0,6]
起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。
起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。

提示:

  • 1<=s.length,p.length<=3*10^4
  • s和p仅包含小写字母

相关标签:哈希、字符串、滑动窗口

题解:   

        根据题目中的提示,我们可以先统计出字符串p的个数,再for循环遍历统计字符串s的个数。利用滑动窗口来确定比较范围,字符串p的长度。如果统计个数相等,即是p的异位词。

注意:Counter统计个数为0的元素依旧存在,如果直接与p的统计个数比较是错误的,所以需要判断新元素是否在p里面,添加元素值为0。

代码:Python

import collectionss = "cbaebabacd"
p = "abc"def leetcode_fun1():'''1、滑动窗口,一次遍历2、异位词比较:计数元素个数'''n, m, pl, res = len(p), len(s), collections.Counter(p), list()if m < n:return []pro, pre = 0, n - 1while pre < m:if pl == collections.Counter(s[pro:pre + 1]):res.append(pro)pro += 1pre += 1return resdef leetcode_fun2():'''1、滑动窗口、一次遍历,异位词比较:计数元素个数'''res, n, m = list(), len(p), len(s)cnt_p = collections.Counter(p)cnt_s = collections.Counter()for i in range(m):cnt_s[s[i]] += 1if s[i] not in p:cnt_p[s[i]] = 0if i >= n:cnt_s[s[i - n]] -= 1if cnt_s == cnt_p:res.append(i - n + 1)return resif __name__ == '__main__':res = leetcode_fun2()print(res)  # [0, 6]

总结:

题目内容来源于leetcode链接:找到字符串中所有字母异位词

相关文章:

leetcode:找到字符串中所有字母异位词

题目&#xff1a; 给定两s和p中所有p的异位词的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 &#xff1a; 输入 输出 解释 s "cbaebabacd", p "…...

C语言学习

学习内容 两道题目 猜数字游戏 goto语句 关机程序 代码 //4.编写代码&#xff0c;演示多个字符从两端移动&#xff0c;向中间汇聚 welcome to china!!!! //#include<windows.h> //#include<stdlib.h> //int main() //{ // char arr1[] "welcome to c…...

Java面试题:MySQL高频面试题

MySQL常见面试题01 1、B树跟B树的区别&#xff1f; MySQL为什么选择B树来存储索引&#xff1f; 层数低,可以存放的数据多 2、InnoDB和MyISAM的区别&#xff1f; i:天生支持行锁,手动支持表锁,有事务,索引和数据一起存储 m:支持表锁不支持行锁,无事务,索引和数据分开存储 3、…...

使用js给数字进位,比如23333元进位成2.33万元

文章目录 一、进位函数&#xff1a;二、使用&#xff1a;总结 一、进位函数&#xff1a; //数字进位getUnitObjWithNumber(value){let dataconst returnObj {}let dw let chengshu 1if (isNaN(value)) {data 0} else {data parseFloat(value)}if (Math.abs(data) < 100…...

Java二十三种设计模式-享元模式(12/23)

享元模式&#xff1a;高效管理大量对象的设计模式 引言 在软件开发中&#xff0c;有时需要处理大量相似或重复的对象&#xff0c;这可能导致内存使用效率低下和性能问题。享元模式提供了一种解决方案&#xff0c;通过共享对象的共同部分来减少内存占用。 基础知识&#xff0c…...

腾讯云AI代码助手助力软件开发体验分享

引言 现在&#xff0c;AI工具在软件开发中变得越来越重要&#xff0c;它们能显著提升效率和代码质量。本文就来分享一下我用腾讯云AI代码助手的经历&#xff0c;看看它是怎么在开发中帮了大忙的。 开发环境介绍 这次的项目用的是JavaScript&#xff0c;开发环境是Windows 10…...

Leetcode力扣刷题——182.查找重复的电子邮箱

题目 编写解决方案来报告所有重复的电子邮件。 请注意&#xff0c;可以保证电子邮件字段不为 NULL。 以 任意顺序 返回结果表。 结果格式如下例。 结果 # Write your MySQL query statement below select Email from Person group by email having count(*)>1; 知识点 c…...

idea中好用的插件

输入法自动切换插件 自动切换输入法插件&#xff1a;Smart Input。编写代码时自动切换到英文输入法&#xff0c;注释代码自动切换为中文输入法。极大的提升我们的编码效率。 MyBatisX插件 MybatisX 是一款基于 IDEA 的快速开发插件&#xff0c;为效率而生。主要用于XML映射配…...

spring 代码执⾏ (CVE-2018-1273)漏洞

一 漏洞简介 Spring Data 是⼀个⽤于简化数据库访问&#xff0c;并⽀持云服务的开源框架&#xff0c;Spring Data Commons 是 Spring Data 下所有⼦项⽬共享的基础框架。Spring Data Commons 在 2.0.5 及 以前版本中&#xff0c;存在⼀处 SpEL 表达式注⼊漏洞&#xff0c;攻击…...

幺麻子曲折上市路:毛利率近四年下滑不少,存货出现较大增长

《港湾商业观察》廖紫雯 近期&#xff0c;幺麻子食品股份有限公司&#xff08;以下简称&#xff1a;幺麻子&#xff09;申请股票在全国股份转让系统挂牌并公开转让&#xff0c;拟挂牌新三板。 幺麻子此前上市之路可谓一波三折。2022年9月&#xff0c;公司向四川证监局提交辅导…...

Sol盗u、sol链上的USDT盗窃:警惕恶意智能合约

随着区块链技术的普及&#xff0c;Solana链上的应用和用户数量不断增加。然而&#xff0c;这也为不法分子提供了可乘之机&#xff0c;恶意智能合约逐渐成为盗取USDT等加密资产的一种常见手段。本文将详细介绍恶意智能合约的工作原理&#xff0c;并提供防范措施&#xff0c;帮助…...

jupyter for c++

jupyter for c++ jupyter for c++ jupyter for c++配置环境问题参考文档配置环境 需要 clang 编译器 安装 aconda 默认情况下,anaconda navigator包与anaconda Distribution一起安装,并包含依赖包qt。默认情况下,qt的所有依赖项也应安装,但某些版本的Anaconda Distribution…...

TCP Analysis Flags 之 TCP Window Full

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

相关性检验

文章目录 Pearson相关系数Spearman等级相关系数Cochrans Q检验Kappa一致性系数Kendall相关系数实例分析总结 在数据分析的广阔天地中&#xff0c;相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法&#xff1a;Pearson、Spearman、Cochran’s…...

【python】Django运行报错分析:ImproperlyConfigured 错误解决办法

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

AS01/AS11 创建固资和子资产

AS01&#xff1a;创建资产卡片 定义该资产的折旧费用&#xff0c;应该归结到哪个成本中心。 如果一台设备停止使用&#xff0c;可以勾选。停止折旧。 该界面维护折旧码和折旧的时间。 维护完之后点击保存。 系统生成一个资产卡片号。 AS02-修改资产卡片号 更改不同时间段&…...

vue3数字动画插件countup.js

countup.js 是一个轻量级的 JavaScript 库&#xff0c;允许你为网站上显示统计数据或计数器时平滑地动画化数字。CountUp 类被用来创建计数器实例&#xff0c;可以平滑地从一个数值变化到另一个数值。 只是用户视觉更好一些。 1、安装插件 npm i countup.js2、个人是封装了组件…...

aspeed2600 GPIO分析与适配ipmitool power status, ipmitool power on/off

1.说明 本节以x86-power-control/src/power_control.cpp为基础&#xff0c;分析整个GPIO的调用流程&#xff0c;实现简单的ipmitool power on/off,ipmitool power status的管理。 1.资源:x86-power-control:https://github.com/openbmc/x86-power-control2.相关文件: meta-ph…...

在C#中配置ini文件以及封装ini类

在C#中使用 DllImport 属性从 kernel32.dll 导入函数来写入和读取Windows的INI文件&#xff0c;你可以使用 WritePrivateProfileString 来写入数据&#xff0c;使用 GetPrivateProfileString 来读取数据。 以下是如何使用这些函数的示例&#xff1a; 写入INI文件 using Syst…...

使用git上传代码到github

1、设置用户名及邮箱 git config user.name"你的用户名"git config user.email"xxxxx.com" 2、查看配置 git config -l 3、生成秘钥 ssh-keygen -t rsa 根据上图中红框标出的id_rsa.pub地址&#xff0c;找到它&#xff0c;使用txt文件打开&#xff0c;复…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...