当前位置: 首页 > 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;}
};

相关文章:

  • 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实战指南:从零构建企业级监控系统
  • 推理还原的干货
  • 深入解析路由策略:从流量控制到策略实施
  • 阚吉林任重庆市民政局党组书记,原任市委组织部主持日常工作的副部长
  • 工行回应两售出金条疑似有杂质:情况不属实,疑似杂质应为金条售出后的外部附着物
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • 国博馆刊|北朝至唐初夏州酋豪李氏家族的发展与身份记忆
  • 毗邻三市人均GDP全部超过20万元,苏锡常是怎样做到的?
  • 长安汽车辟谣作为二级企业并入东风集团:将追究相关方责任