模块二——滑动窗口:438.找到字符串中所有字母异位词

文章目录

  • 题目描述
  • 算法原理
    • 滑动窗口+哈希表
  • 代码实现

题目描述

题目链接:438.找到字符串中所有字母异位词
在这里插入图片描述

算法原理

滑动窗口+哈希表

  • 因为字符串p的异位词的⻓度⼀定与字符串p 的⻓度相同,所以我们可以在字符串s 中构造⼀个⻓度为与字符串p的⻓度相同的滑动窗⼝,并在滑动中维护窗⼝中每种字⺟的数量;
  • 当窗⼝中每种字⺟的数量与字符串p 中每种字⺟的数量相同时,则说明当前窗⼝为字符串p的异位词;
  • 因此可以⽤两个⼤⼩为26 的数组来模拟哈希表,⼀个来保存s 中的⼦串每个字符出现的个数,另⼀个来保存p中每⼀个字符出现的个数。这样就能判断两个串是否是异位词。

代码实现

class Solution {
public:vector<int> findAnagrams(string s, string p) {int hash1[26] = { 0 };//统计字符串p中每个字符出现的个数for(auto ch : p)hash1[ch - 'a']++;int hash2[26] = { 0 };//统计窗口里面每一个字符出现的个数vector<int> res;for(int left = 0,right = 0,count = 0;right < s.size();right++)//1.控制窗口{char in = s[right];if(++hash2[in - 'a'] <= hash1[in - 'a'])count++;//2.进窗口+维护countwhile(right - left + 1 > p.size())//3.判断{char out = s[left++];if(hash2[out - 'a']-- <= hash1[out - 'a'])count--;//维护count+出窗口}if(count == p.size()) res.push_back(left);//更新结果}return res;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Stm32-F407】Keil uVision5 下新建工程

①双击鼠标左键打开Keil uVision5&#xff0c;选择 Project 下的 New uVision Project &#xff1b; ②在期望的文件夹下创建一个工程&#xff0c;并按如下要求操作&#xff1b; ③添加文件类型&#xff0c;按如下要求操作 ④如有需要可添加相关启动文件在工程文件夹下并添加到…

深度学习中的高斯分布

1 高斯分布数学表达 1.1 什么是高斯分布 高斯分布(Gaussian Distribution)又称正态分布(Normal Distribution)。高斯分布是一种重要的模型&#xff0c;其广泛应用与连续型随机变量的分布中&#xff0c;在数据分析领域中高斯分布占有重要地位。高斯分布是一个非常常见的连续概…

ArrayList与顺序表(带完整实例)

【本节目标】 1. 线性表 2. 顺序表 3. ArrayList的简介 4. ArrayList使用 5. ArrayList的扩容机制 6. 扑克牌 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表…

Mysql 计算地理位置信息

mysql 处理空间关系 MySQL提供了一系列的函数来帮助我们处理空间对象之间的关系&#xff0c;如 ST_Intersects、ST_Contains 等。这些函数可以帮助我们判断空间对象之间的位置关系&#xff0c;并在此基础上执行相应的查询。 多边形查询 在实际应用中&#xff0c;需要查询某个…

【CSS 渐变Gradient详解】线性渐变、径向渐变、锥形渐变及重复渐变

渐变 gradient https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients CSS 属性值定义语法 https://developer.mozilla.org/zh-CN/docs/Web/CSS/angle https://developer.mozilla.org/…

HTTP 301错误:永久重定向,大勇的冒险之旅

大家好&#xff0c;我是大勇&#xff0c;一个喜欢冒险的程序员。今天&#xff0c;我要和大家分享一个我在互联网世界中的冒险故事——如何处理HTTP 301错误&#xff1a;永久重定向。 那天&#xff0c;我像往常一样&#xff0c;打开我的代码编辑器&#xff0c;准备开始一天的工…

代码随想录算法训练营第36天|● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

435. 无重叠区间 已解答 中等 相关标签 相关企业 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [start(i), end(i)] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除…

Wireshark抓包实验

实验目的&#xff1a; 通过实验掌握下列知识&#xff1a; 掌握Wireshark抓包工具的使用。掌握建立telnet用户密码登录方式&#xff0c;并通过wireshark抓取相关信息。理解TCP的包结构&#xff0c;并掌握TCP建立连接的过程。掌握使用tftp工具&#xff0c;上传、下载文件操作及t…

Python实现多种图像去噪方法

Python实现多种图像去噪方法&#xff1a;中值滤波&#xff0c;均值滤波&#xff0c;高通滤波&#xff0c;低通滤波&#xff0c;高斯滤波&#xff0c;同态滤波 图像和视频逐渐成为人们生活中信息获取的重要来源。人们准确地获取信源发出的图像和视频信息需要保证在传输过程中的…

​ctypes --- Python 的外部函数库​

源代码: Lib/ctypes ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型&#xff0c;并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。 ctypes 教程 注&#xff1a;本教程中的示例代码使用 doctest 来保证它们能正确运行。 由于有…

文本每行数据乘以0.8

文本中数据计算 1.读取input.txt文本中每行数字 2.每行数字乘以0.8&#xff0c;输出到out.txt文件中 package mainimport ("bufio""fmt""log""os""strconv" )func main() {// 打开输入文件inputFile, err : os.Open(&quo…

Ganache结合内网穿透实现远程或不同局域网进行连接访问

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络&#xff0c;提供图形化界面&#xff0c;log日志等&#xff1b;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…

解决nuxt3报错:The requested module xxx does not provide an export named ‘PropType‘

现象如下&#xff1a; 从表象上就是typescript找不到PropType的类型声明 原因&#xff1a;这是vue3已知的type类型导入时存在的一个问题&#xff0c;而且一直没有得到解决 No matching export for import typescript interface Issue #2117 vitejs/vite GitHub 代码里面导…

解决接入mPaas一直Starting Gradle Daemon...问题

1、新版开发工具 如若使用的是新版开发工具则在settings.gradle中加入 // gradlePluginPortal() // google()maven { url https://maven.aliyun.com/repository/google }maven { url https://maven.aliyun.com/repository/gradle-plugin }maven { url https://…

Heap Sort Algorithm

A heap is a specialized tree-based data structure that satisfies the heap property. It’s commonly implemented as a binary tree, particularly an array-based representation, where the parent node’s value is either greater than or less than (depending on wh…

IncDec序列

title: IncDec序列 date: 2023-12-14 21:10:36 tags: 差分 categories: 算法进阶指南 —>传送门 题目大意 解题思路 区间操作&#xff0c;可以考虑差分。观察发现&#xff0c;最终变成相同的数&#xff0c;相当于相邻的两个数之差为 0 0 0&#xff0c;因此我们使用差分。先…

快乐数(力扣

bool isHappy(int n) {int num10,temp;while(num--){temp0;while(n){temppow(n%10,2);n/10;}ntemp;if(n1) return true;}return false; }

35、卷积算法总结

前面大概花了 10 几节的篇幅,介绍了卷积这一算法,我觉得是值得的。 因为在CNN网络中,卷积是属于绝对的核心,而且围绕着卷积可衍生出来的算法还有很多,并且卷积的算法思想在很多其他算法中都有体现,比如矩阵乘法、全连接算法。这一节来总结一下这个算法。 卷积算法的参数…

hash累计上文

import hashlib def gen_hash(text):# 创建一个SHA256哈希对象hash_object hashlib.sha256()# 更新哈希对象hash_object.update(text.encode())# 获取哈希值&#xff08;十六进制字符串&#xff09;hex_dig hash_object.hexdigest()return hex_dig# 要计算哈希值的文本 data …

【开题报告】基于SpringBoot的办公消耗品管理系统的设计与实现

1.研究背景 办公消耗品管理系统的设计与实现&#xff0c;是针对当前企业、公司等办公场所对于各种消耗品进行高效管理的需求而提出的。随着企业规模的扩大和办公自动化程度的提高&#xff0c;传统的手工管理已经无法满足日益增长的管理需求。因此&#xff0c;基于SpringBoot的…