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

C++速通LeetCode中等第6题-找到字符串中所有字母异位词(滑动窗口最详细代码注释)

 滑动窗口法:

class Solution {
public:vector<int> findAnagrams(string s, string p) {unordered_map<char,int> need,window;for(char c : p) need[c]++;int left = 0,right = 0;int valid = 0;vector<int> res;//窗口数据更新while(right < s.size()){char c = s[right];right++;//先判断新来的在不在要求的字串中,不在的话计数不变if(need.count(c)){window[c]++;//再判断新来的字符计数是否满足条件了,满足条件数则valid++if(window[c] == need[c]){valid++;}}//子循环判断左窗口是否需要收缩,right-left就是当前窗口大小,因为right++导致窗口区间是[left,right)while(right - left >= p.size()){//当窗口符合条件时,把起始索引加入res,记录答案if(valid == need.size()){res.push_back(left);}char d = s[left];left++;//收缩后,对窗口计数更新//先判断舍弃的在不在要求的子串中,不在的话计数不变if(need.count(d)){   //再判断舍弃的字符计数是否满足条件了if(window[d] == need[d]){valid--;}window[d]--;//这里window一定要在判断后--,跟上面右移的时候反过来对称,右移是先++}}}return res;}
};

相关文章:

C++速通LeetCode中等第6题-找到字符串中所有字母异位词(滑动窗口最详细代码注释)

滑动窗口法&#xff1a; class Solution { public:vector<int> findAnagrams(string s, string p) {unordered_map<char,int> need,window;for(char c : p) need[c];int left 0,right 0;int valid 0;vector<int> res;//窗口数据更新while(right < s.s…...

Tcping:一款实用的端口存活检测工具

简介 tcping 是一个基于TCP协议的网络诊断工具,通过发送 TCP SYN/ACK包来检测目标主机的端口状态。 官网:tcping.exe - ping over a tcp connection 优点: (1)监听服务器端口状态:tcping 可以检测指定端口的状态,默认是80端口,也可以指定其他端口。 (2)显示ping返…...

【每日刷题】Day130

【每日刷题】Day130 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 2. 94. 二叉树的中序遍历 - 力扣…...

书生·浦语作业集合

目录&#xff1a; 1. Linux基础知识 2.python基础知识 3.Git基础知识 4.书生大模型全链路开源体系 1.1-Linux基础知识 配置环境后&#xff0c;运行 hello_word.py 在本地终端中进行端口映射 映射成功后&#xff0c;访问 127.0.0.1&#xff1a;7860 1.2-python基础知识 任务…...

得物App科技创新“再上一层楼”,荣获国家级奖项

近日&#xff0c;在2024中国国际服务贸易交易会&#xff08;简称“服贸会”&#xff09;上&#xff0c;得物App荣获“科技创新服务示范案例”奖项。这是国家层面对得物App以科技创新保障品质消费、提升消费体验成效的肯定。 在得物App上&#xff0c;90后、95后这些曾经的“新生…...

C#软键盘设计字母数字按键处理相关事件函数

应用场景&#xff1a;便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用&#xff0c;因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面&#xff1a;软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…...

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如&#xff1a;string、vector、list、deque、array、forward_list等&#xff0c;这些容器统称为序列式容器&#xff0c;因为逻辑结构为线性序列的数据结构&#xff0c;两个位置存储的值之间一般没有紧密的关联关…...

HTTP 教程

HTTP/HTTPS 简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;和 HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff0c;超文本传输安全协议&#xff09;是用于在网络中传输信息的两种主要协议。它们定义了客户端和服务器…...

低代码革命:加速云原生时代的端到端产品创新

随着云计算技术的飞速发展&#xff0c;云原生成为了企业数字化转型的重要方向。云原生技术通过容器化、微服务、持续集成/持续部署&#xff08;CI/CD&#xff09;等实践&#xff0c;帮助企业构建和运行可扩展的应用程序。然而&#xff0c;云原生技术的复杂性也给开发团队带来了…...

力扣 92.反转链表Ⅱ

力扣《反转链表》系列文章目录 刷题次序&#xff0c;由易到难&#xff0c;一次刷通&#xff01;&#xff01;&#xff01; 题目题解206. 反转链表反转链表的全部 题解192. 反转链表 II反转链表的指定段24. 两两交换链表中的节点两个一组反转链表 题解225. K 个一组翻转链表K …...

2024年最新版TypeScript学习笔记——泛型、接口、枚举、自定义类型等知识点

今天带来的是来自尚硅谷禹神2024年8月最新的TS课程的学习笔记&#xff0c;不得不说禹神讲的是真的超级棒&#xff01; 文章目录 TS入门JS中的困扰静态类型检查编译TS命令行编译自动化编译 类型检查变量和函数类型检查字面量类型检查 类型推断类型声明声明对象类型声明函数类型…...

java项目之城镇保障性住房管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的城镇保障性住房管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 城镇保障性住房管…...

无人机之航线规划篇

无人机的航线规划是一个复杂但至关重要的过程&#xff0c;它确保了无人机在飞行过程中的安全、高效以及任务的顺利完成。以下是对无人机航线规划的详细解析&#xff1a; 一、定义与目的 无人机航线规划是指依据无人机任务分配&#xff0c;规划出符合安全条件的飞行航线。这一过…...

828 华为云征文|华为 Flexus 云服务器搭建 PicGo 图床

在这个充满非凡意义的日子里&#xff0c;我怀揣着满心的热忱与憧憬&#xff0c;毅然决然地踏上了借助华为 Flexus 云服务器搭建 PicGo 图床的精彩征程。这段旅程&#xff0c;注定充满了无数的挑战与意外之喜&#xff0c;宛如在广袤无垠的数字海洋中勇敢地探寻那神秘而珍贵的宝藏…...

Zabbix 6.4添加中文语言

/usr/share/zabbix/include/locales .inc .phplocale -agrep “zh_CN" yum install langpacks-zh_CN.noarch y y y...

【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

这篇博客写在凌晨 4 点 20 分&#xff0c;这个时候我刚线上部署完成 web 项目&#xff0c;自己写的全栈项目 这个点儿&#xff0c;也睡不着了&#xff0c;索性就写篇博客记录一下 一、踩坑实录 这个是 最重要的&#xff0c;所以写在前面 Nginx 配置文件 location location /a…...

Qanything 2 0源码解析系列1:新建知识库

Qanything 2.0源码解析系列1&#xff1a;新建知识库 文章转载自&#xff1a;https://www.feifeixu.top/article/19c76951-5881-4181-bb63-4188b28d3917 &#x1f600; 前言&#xff1a; qanything所有接口都定义在sanic_api.py中 接口函数定义在同级目录下的handler.py中 新建…...

Redis-01 入门和十大数据类型

Redis支持两种持久化方式&#xff1a;RDB持久化和AOF持久化。 1.RDB持久化是将Redis的数据以快照的形式保存在磁盘上&#xff0c;可以手动触发或通过配置文件设置定时触发。RDB保存的是Redis在某个时间点上的数据快照&#xff0c;可以通过恢复RDB文件来恢复数据。 2.AOF持久化…...

IT行业的现状与未来发展趋势

IT行业的现状与未来发展趋势 近年来&#xff0c;随着科技的迅猛发展&#xff0c;IT行业无疑已经成为全球经济增长的重要驱动力之一。无论是人工智能、大数据&#xff0c;还是云计算和区块链技术&#xff0c;IT行业的创新始终在不断推动着各个领域的变革。 人工智能的广泛应用…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

828华为云征文 | 云服务器Flexus X实例&#xff0c;Docker集成搭建Jenkins CI/CD平台 Jenkins 是一个开源的自动化服务器&#xff0c;用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;软件项目。它允许开发人员在软件开发过程中自动化各种任务&…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...