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

【hot100篇-python刷题记录】【找到字符串中所有字母异位词】

R6-滑动窗口篇

印象题

核心:

使用collections方法的Counter计数,统计了某个子串中每个字母出现的次数。

判断子串相等:counter1=counter2

(注意:此时,counter1或者counter2都不能含有多余的项(尽管可能为0))

思路:

先统计一遍p的counter1

接着开始滑动窗口,每次从右边增加一个字符。因此初始滑动窗口大小为len(p)-1,当从右边增加一个元素,判断counter1是否等于counter2

相等:append(left)

下一次预备:

如果counter2中left对应的字符数量为0,需要删除,避免影响下一次的判断

left和right指针都向右移动 

class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:counter1=collections.Counter(p)left,right=0,len(p)-1counter2=collections.Counter(s[0:right])ret=[]while right<len(s):counter2[s[right]]+=1if counter1==counter2:ret.append(left)counter2[s[left]]-=1if counter2[s[left]]==0:del counter2[s[left]]right+=1left+=1return ret

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 工厂模式和策略模式区别
  • 汽车冷却液温度传感器的作用与检测方法
  • Windows10如何关闭Edge浏览器的Copilot
  • 钓鱼的常见几种方式
  • css之grid布局(网格布局)
  • 力扣 128. 最长连续序列
  • 深度学习加速秘籍:PyTorch torch.backends.cudnn 模块全解析
  • python办公自动化:初识`python-docx`
  • win10 新建、删除文件不会自动刷新的问题解决方案
  • 92.WEB渗透测试-信息收集-Google语法(6)
  • idea 2024.2切换到旧版的UI
  • CTF杂项题:easy_nbt writeup
  • 强!34.1K star! 再见Postman,新一代API测试利器,功能强大、颜值爆表!
  • C++ 内嵌 python 解释器
  • 【机器学习】AGI的基本概念、技术挑战和应用前景
  • 【Amaple教程】5. 插件
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • hadoop集群管理系统搭建规划说明
  • SpiderData 2019年2月23日 DApp数据排行榜
  • VUE es6技巧写法(持续更新中~~~)
  • webpack+react项目初体验——记录我的webpack环境配置
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 双管齐下,VMware的容器新战略
  • 小程序开发中的那些坑
  • 小而合理的前端理论:rscss和rsjs
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 我们雇佣了一只大猴子...
  • #### golang中【堆】的使用及底层 ####
  • #每天一道面试题# 什么是MySQL的回表查询
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (五)c52学习之旅-静态数码管
  • .form文件_一篇文章学会文件上传
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 指南:抽象化实现的基类
  • .NET 中创建支持集合初始化器的类型
  • .NET命名规范和开发约定
  • .net中生成excel后调整宽度
  • /proc/vmstat 详解
  • @ConfigurationProperties注解对数据的自动封装
  • @Controller和@RestController的区别?
  • @staticmethod和@classmethod的作用与区别
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • @WebService和@WebMethod注解的用法
  • [ A*实现 ] C++,矩阵地图
  • [ C++ ] 类和对象( 下 )
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Android 13]Input系列--获取触摸窗口
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [bzoj4240] 有趣的家庭菜园
  • [C#]扩展方法
  • [GDMEC-无人机遥感研究小组]无人机遥感小组-000-数据集制备