刷题之找到字符串所有字母异位词

找到字符串所有字母异位词
在这里插入图片描述
滑动窗口。滑动窗口大小为待比较数组的大小。

class Solution {
public:vector<int> findAnagrams(string s, string p) {//滑动窗口vector<int>result;if(s.size()<p.size())return result;vector<int>pnum(26,0);//记录p的字母vector<int>snum(26,0);//记录滑动窗口的字母//先填满窗口for(int i=0;i<p.size();i++){snum[s[i]-'a']++;pnum[p[i]-'a']++;}//当vector里的元素是基本数据类型时,可以直接使用 "==", "!=", ">=","<=" 来对两个vector进行比较。if(pnum==snum){result.push_back(0);}//滑动窗口for(int i=0;i<s.size()-p.size();i++){snum[s[i]-'a']--;snum[s[i+p.size()]-'a']++;if(snum==pnum){result.push_back(i+1);}}return result;}
};

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

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

相关文章

链表----带环链表快慢指针进阶版

1.带环链表及其拓展 &#xff08;1&#xff09;这个题目组要就是进行判断这个链表是否带环&#xff0c;使用的是布尔类型作为返回值&#xff1b; &#xff08;2&#xff09;我们这里的思路是使用的快慢指针&#xff0c;快指针一次走2步&#xff0c;慢指针一次走1步&#xff0c…

iOS Xcode 升级Xcode15报错: SDK does not contain ‘libarclite

一 iOS Xcode 升级Xcode15报错: SDK does not contain libarclite 1.1 报错信息 SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib/arc/libarclite_iphonesimulator.a; try increasin…

Sass(Syntactically Awesome Stylesheets)是一种强大的CSS预处理器

Sass&#xff08;Syntactically Awesome Stylesheets&#xff09;是一种强大的CSS预处理器&#xff0c;它旨在简化CSS的编写&#xff0c;并增强其功能。它让开发者能够使用变量、嵌套规则、混入&#xff08;mixins&#xff09;、继承等高级功能&#xff0c;从而编写更加结构化和…

Linux基础知识面试题

1. 请描述Linux操作系统的安装过程&#xff0c;并说明其中的关键步骤。 Linux操作系统的安装过程通常涉及以下几个关键步骤&#xff1a; 准备安装介质&#xff1a;需要从官网或者其他可靠来源下载Linux发行版的ISO镜像文件&#xff0c;并制作一个启动U盘或者烧录到DVD中。现在…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (九)

LlaMA 3 系列博客 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (三) 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四) 基于 LlaMA…

Java面向对象——多态

即同一个方法可以根据发送对象的不同而采用多种不同的行为方式。 一个对象的实际类型是确定的&#xff0c;但可以指向对象的引用的类型有很多&#xff08;父类&#xff0c;有关系的类&#xff09;。 多态存在的条件&#xff1a; 1. 有继承关系&#xff1b; 2. 子类重写父类…

linux 卸载Nginx

在Linux中卸载Nginx&#xff0c;通常涉及几个关键步骤&#xff0c;包括停止Nginx服务、卸载依赖库、删除文件和清理安装包。具体的命令可能因Linux发行版的不同而略有差异。以下是一个通用的卸载流程&#xff1a; 1、停止Nginx服务 在卸载Nginx之前&#xff0c;需要先停止Ngi…

思维导图软件哪个好?5个软件教你自己快速制作思维导图

思维导图软件哪个好&#xff1f;5个软件教你自己快速制作思维导图 思维导图软件在现代生活和工作中扮演着重要的角色&#xff0c;它们可以帮助人们整理思维、规划项目、记录笔记等。以下是五款值得推荐的思维导图软件&#xff0c;它们各有特色&#xff0c;可以帮助您快速制作思…

嵌入式Linux:编译和使用Protobuf库

目录 1、开发环境和工具 2、安装和编译Protobuf、Protobuf-C库 3、编写和编译proto文件 4、修改makefile文件 5、测试示例 6、参考资料 Protobuf&#xff08;Protocol Buffers&#xff09;是由 Google 开发的一种轻量级、高效的结构化数据序列化方式&#xff0c;用于在不同应用…

Java红黑树详解及示例

红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉查找树&#xff08;Binary Search Tree&#xff09;&#xff0c;它确保了在最坏情况下基本操作&#xff08;比如插入、删除、查找&#xff09;都能在O(log n)时间内完成。红黑树的关键在于它在每个节点上存储了…

Charger之三动态电源路径管理(DPPM)

-----本文简介----- 主要内容包括&#xff1a; 领资料&#xff1a;点下方↓名片关注回复&#xff1a;粉丝群 硬件之路学习笔记公众号 Charger的动态电源路径管理&#xff08;DPPM&#xff09; 前篇内容&#xff1a;①电池管理IC&#xff08;Charger&#xff09;了解一下&…

python中几种推导式简单样例

目录 一、python中几种推导式 1.1 列表推导式&#xff1a; 1.2 字典推导式 1.3 生成器表达式&#xff1a; 1.4 条件表达式&#xff1a; 二、简化对多个列表的并行迭代函数&#xff1a; 一、python中几种推导式 1.1 列表推导式&#xff1a; 使用列表推导式可以简化对列表…

基于java 自定义注解Annotation设计简单ORM框架——进阶篇

目录 引言实例新建两个注解标注实体类拼接sql语句 总结 引言 一般Java规范编程&#xff08;只是一种习惯&#xff0c;而不是强制&#xff09;中&#xff0c;变量的命名方式一般采用驼峰式命名。比如userName&#xff0c;userImage。但是在数据库中一般不会采用驼峰式&#xff…

AIGC、LLM 加持下的地图特征笔记内容生产系统架构设计

文章目录 背景构建自动化内容生产平台系统架构设计架构详细设计流程介绍笔记来源笔记抓取干预 笔记 AIGC 赋能笔记 Rule 改写笔记特征库构建 附录Bash Cron 定时任务Golang 与 Pyhon AIGC 实践 小结 背景 在大模型的浪潮下&#xff0c;ChatGPT、Sora、Gemini、文言一心 等新技…

js sleep 实现方式

在JavaScript中&#xff0c;由于其单线程和事件驱动的特性&#xff0c;没有直接的sleep函数&#xff0c;但你可以通过一些方法模拟出类似的效果。最常见的方式是使用setTimeout或者setInterval&#xff0c;以及更现代的Promise和async/await语法来实现异步等待。下面是几种实现…

[MRCTF2020]PixelShooter

是个安卓游戏题 re手肯定不会去玩游戏&#xff0c;先jadx分析一波 没有什么关键信息&#xff0c;但找到了一个unity类&#xff0c;想到apk也可以解压缩得到 .so 或者 Assembly-CSharp.dll 故又在dnspy分析一下 看了半天没有和flag有关信息&#xff0c;看wp&#xff1a; Asse…

知识付费系统开源方案,教育机构如何利用朋友圈做转介绍?

招生成本高&#xff0c;效果差让许多教育机构头疼不已。对于教育机构来说通过转介绍招生是一个非常有效的途径&#xff0c;那么教育机构如何利用朋友圈做转介绍呢?今天小编就来和大家分享一下。 利用朋友圈做转介绍&#xff0c;主要是通过做活动&#xff0c;来完成增加粉丝、扩…

用面向对象的思想编写实时嵌入式C程序

实时嵌入式系统的软件一般由C语言编写&#xff0c;程序结构基本上都是这样的&#xff1a; // 主程序 int main(void) {init(); // 初始化while(1){tick(); // 业务逻辑}return 0; }// 计时器 static unsigned int g_timer_tick_cnt 0; // 时钟中断回调 void isr_time…

【工作篇】软件工程师的知识基础(持续更新)

目录 1. linux 知识篇 1. linux 知识篇 1. Linux API 是什么 Linux API 是指 Linux 操作系统 提供的应用程序接口&#xff0c;用于与操作系统进行交互。它包含了一系列的函数、系统调用、库函数和数据结构&#xff0c;用于实现各种系统级的操作&#xff0c;如文件操作、进程…

C++ 练习题四道 hv-LDM

1.判断两个日期间的天数 class test { public:int y, m, d, x;test(){y 2023, m 3, d 1, x 3;}test(int yy, int mm, int dd){y yy;m mm;d dd;}void ReturnWeekDay(){int iWeek 0;int Y 0, C 0, M 0, D 0;if (m 1 || m 2){C (y - 1) / 100;Y (y - 1) % 100;M …