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

438. 找到字符串中所有字母异位词(滑动窗口)

 思路

题目要求我们找到异位词,一样开始分析题目,什么是异位词,怎么判段异位词,这是我们解题的开口,不理解这个就做不了,异位词特点,包含的字符相同,只是存在位置不同,

知道特点利用特点判断是不是异位词,那我们只需要记录p字符串所有的字符,然后在s字符串里面找长度相同,包含字符个数一样的字串就行了,所以我们需要利用滑动窗口,来固定窗口大小,然后右移动。

代码

class Solution {
public:vector<int> findAnagrams(string s, string p) {int n=p.size();int m=s.size();
//记录字串大小vector<int> pcount(26);vector<int> scount(26);//存储s字符串的字串,用来判断是不是异位词
//记录p的字符个数,后面来判断是不是异位词vector<int> reslut;
//结果数组for(int i=0;i<n;i++){pcount[p[i]-'a']++;}
//记录p字符int left=0;//滑动窗口左指针//right位右指针for(int right=0;right<m;right++){scount[s[right]-'a']++;//窗口大小合适了if(right-left+1==n){//判断if(scount==pcount) reslut.emplace_back(left);//左指针右移动,保持窗口大小,移除窗口的字符需要删掉scount[s[left]-'a']--;left++;}}return reslut;}
};

http://www.dtcms.com/a/183048.html

相关文章:

  • Android方法耗时监控插件开发
  • vue3项目中CodeMirror的复杂用法,实现自定义语法模式,手动在指定光标位置插入/获取/替换/绑定文本
  • 当可视化遇上 CesiumJS:突破传统,打造前沿生产配套方案
  • CentOS7.9部署FunASR实时语音识别接口 | 部署商用级别实时语音识别接口FunASR
  • 线程安全 1_线程安全
  • Java Bean容器详解:核心功能与最佳使用实践
  • 关于单片机的基础知识(一)
  • Qt/C++开发监控GB28181系统/实时视频预览/视频点播/rtp解包解码显示
  • M0基础篇之ADC
  • 树莓派4的v4l2摄像头(csi)no cameras available,完美解决
  • leetcode0829. 连续整数求和-hard
  • python:vars()方法
  • [docker基础四]容器虚拟化基础之 LXC
  • sensitive-word-admin v2.0.0 全新 ui 版本发布!vue+前后端分离
  • Windows 上使用 WSL 2 后端的 Docker Desktop
  • Linux `ifconfig` 指令深度解析与替代方案指南
  • 2025年广东初级消防设施操作员精选练习题
  • Checkmk实战指南:从零构建企业级监控系统
  • 推理还原的干货
  • 深入解析路由策略:从流量控制到策略实施
  • InnoDB结构与表空间文件页的详解
  • 数据结构:树(树的定义和基本术语)
  • Docker磁盘空间不足问题
  • C++字符串处理:高效操作与常见陷阱
  • 养生:为健康生活筑牢根基
  • vue3使用tailwindcss报错问题
  • stm32之IIC
  • 内网穿透系列三:开源本地服务公网映射工具 tunnelmole
  • 初等数论--欧拉定理及证明
  • 数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围