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

【算法】滑动窗口——串联所有单词的子串

今天来以“滑动窗口”的思想来详解一道比较困难的题目——串联所有单词的子串,有需要借鉴即可。

目录

  • 1.题目
  • 2.下面是示例代码
  • 3.总结

1.题目

题目链接:LINK
在这里插入图片描述
这道题如果把每个字符串看成一个字母,就是另外一道中等难度的题目,即,找到字符串中所有字母异位词:LINK

所以说白了,就是把每个字符串来当作一个字母进行处理,当然这仅仅是思想,相比于异位词这个题来说,现在这道比较困难的题目还有以下不同的区别需要注意:

  • ①哈希表不同
  • ②left,right的起始位置,赋值不同
  • ③滑动窗口的执行次数

2.下面是示例代码

class Solution {
public:vector<int> findSubstring(string s, vector<string>& words) {vector<int> ret;unordered_map<string,int> hash_w;for(int i = 0; i < words.size(); i++){string str = words[i];hash_w[str]++;}for(int i = 0; i < words[0].size(); i++){unordered_map<string,int> hash_s;for(int left = i, right = i,count = 0; right + words[0].size() <= s.size(); right+=words[0].size()){//进窗口string in = s.substr(right,words[0].size());//取子串hash_s[in]++;if(hash_w.count(in) && hash_s[in] <= hash_w[in])count++;//判断if(right - left + 1 > words[0].size() * words.size()){//出窗口string out = s.substr(left,words[0].size());if(hash_w.count(out) && hash_s[out] <= hash_w[out])count--;//这个地方需要注意要在--之前进行判断hash_s[out]--;left+=words[0].size();}//更新结果if(count == words.size())ret.push_back(left);}}return ret;}
};

3.总结

  • 一、经验
    这道题如果有“找到字符串中所有字母异位词”这道题的经验,说实在的不难,但前提是得有这个思想,没做过“找到字符串中所有字母异位词”这道题直接做这个的比较困难的题目的话会很难受。

  • 二、再就是语法上:

    • ①是对容器的基本语法要有点了解,知道会用一些基本的接口。
    • ②是我上面这个代码其实还做了一点点语法优化
      就是在判断count是否++或者–时候那个条件,即:if(hash_w.count(in) && hash_s[in] <= hash_w[in])count++;如果hash_w[in]不存在他会创建一个in,有点消耗时间

EOF

相关文章:

【算法】滑动窗口——串联所有单词的子串

今天来以“滑动窗口”的思想来详解一道比较困难的题目——串联所有单词的子串&#xff0c;有需要借鉴即可。 目录 1.题目2.下面是示例代码3.总结 1.题目 题目链接&#xff1a;LINK 这道题如果把每个字符串看成一个字母&#xff0c;就是另外一道中等难度的题目&#xff0c;即&…...

等保测评安全物理环境测评讲解

等保测评中的安全物理环境测评主要关注信息系统的物理安全保护措施&#xff0c;确保机房、设备和数据的物理安全。以下是安全物理环境测评的关键点讲解&#xff1a; 1. **物理位置选择**&#xff1a; - 机房应选择在具有防震、防风和防雨能力的建筑内。 - 应避免设在建筑…...

TensorRT-llm入门

一、目录 作用TensorRT-llm 为什么快&#xff1f;流程TensorRT-LLM 环境配置大模型 转换、编译与推理如何选择量化类型&#xff1f;lora 大模型如何合并&#xff1f;lora 大模型如何编译&#xff0c;使用&#xff1f;推理加速模型 tensorrRT-LLM、Vllm、fasterTransformer、Be…...

TinyXML-2介绍

1.简介 TinyXML-2 是一个简单、小巧的 C XML 解析库&#xff0c;它是 TinyXML 的一个改进版本&#xff0c;专注于易用性和性能。TinyXML-2 用于读取、修改和创建 XML 文档。它不依赖于外部库&#xff0c;并且可以很容易地集成到项目中。 tinyXML-2 的主要特点包括&#xff1a…...

JAVA课程设计

一&#xff1a;Java连接mysql数据库 1.1点击进入mysql jar包下载官网 MySQL :: MySQL Community Downloads 将下载好的压缩包进行解压 解压之后下图就是连接数据库所用到的jar包&#xff1a; 将jar包复制到IDEA所用的项目下&#xff0c;放置jar包的目录为lib&#xff0c;需要…...

基于SpringBoot+Vue的旅游网站系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的&#xff1f;有没有好的毕业设计参考? 能感觉到现在的毕业生和当时的我有着同样的问题&#xff0c;但是当时的我没有被骗&#xff0c; 因为现在很多人是被骗的&#xff0c;还没有出学校还是社会经验少&#xff0c;容易相信别人…...

http代理ip按流量划算还是个数划算?

随着科技的进步和互联网的发展&#xff0c;越来越多的企业在业务上都需要用到代理&#xff0c;那么http代理ip按流量划算还是个数划算&#xff1f;小编接下来就跟大家介绍一下&#xff1a; 首先我们得先了解http代理ip的按流量模式和个数模式分别是什么&#xff1a; 一、按流…...

Banana Pi BPI-F3, 进迭时空K1芯片设计,定位工业级应用,网络通信及工业自动化

香蕉派BPI-F3是一款工业级 8核RISC-V开源硬件开发板&#xff0c;它采用进迭时空&#xff08;SpacemiT&#xff09; K1 8核RISC-V芯片设计&#xff0c;CPU集成2.0 TOPs AI计算能力。4G DDR和16G eMMC。2个GbE以太网接口&#xff0c;4个USB 3.0和PCIe M.2接口&#xff0c;支持HDM…...

安科瑞工业IT产品及解决方案—电源不接地,设备外壳接地【监测系统对地绝缘电阻】

低压配电系统分类及接地保护方案 国际电工委员会&#xff08;iec&#xff09;对各接地方式供电系统的规定规定&#xff1a;(低压&#xff1a;交流1000V以下&#xff09; 低压配电接地、接零系统分为IT、TT、TN三种基本形式。TN分为TN-C&#xff0c;TN-S&#xff0c;TN-C-S三种…...

栈:概念与实现

1.概念 压栈&#xff1a;栈的插入操作叫做进栈/压栈/入栈&#xff0c;入数据在栈顶。出栈&#xff1a;栈的删除操作叫做出栈&#xff0c;出数据也在栈顶。栈的元素遵循后进先出LIFO(Last In First Out)的原则。后面进来的数据先出去 2.栈的实现 三种实现方法&#xff0c;数组…...

【Linux】查找服务器中某个文件的完整路径

方法一&#xff1a; 使用 -wholename 来搜索路径&#xff1a; find / -wholename */esm/data.py这个命令会搜索与 */esm/data.py 完全匹配的路径&#xff0c;其中 * 代表任意数量的任意字符。这应该会找到位于任何目录下的 esm/data.py 文件。 可以限定在某个目录下查找&…...

windows server 2019 安装 docker环境

一、根据官方说明进行安装 , 看起来过程相当简单, 但问题还是有的 准备 Windows 操作系统容器 | Microsoft Learn // 一个 powershell 脚本&#xff0c;该脚本配置环境以启用与容器相关的 OS 功能并安装 Docker 运行时。 Invoke-WebRequest -UseBasicParsing "https://r…...

【Linux】探索 Linux du 命令:管理磁盘空间的利器

给我一个拥抱 给我肩膀靠靠 你真的不需要 对我那么好 思念就像毒药 让人受不了的煎熬 我会迷恋上瘾赖在你怀抱 &#x1f3b5; 陶钰玉《深夜地下铁》 在 Linux 系统管理中&#xff0c;磁盘空间管理是一项基础而重要的任务。du&#xff08;disk usage&#…...

Service 和 Ingress

文章目录 Service 和 IngressServiceEndpointservice 的定义代理集群外部服务反向代理外部域名Service 常用类型 IngressIngress-nginx安装使用 Service 和 Ingress service 和 ingress 是kubernetes 中用来转发网络请求的两个服务&#xff0c;两个服务用处不同&#xff0c;se…...

C++(类和对象—封装)

C面向对象的三大特性 封装 继承 多态 C认为万事万物皆为对象&#xff0c;对象上有其属性和行为 什么是封装&#xff1f; 封装是C面向对象三大特性之一 封装的意义: 将属性和行为作为一个整体&#xff0c;表现生活中的事物 将属性和行为加以权限控制封装意义一: …...

如何训练一个大模型:LoRA篇

目录 写在前面 一、LoRA算法原理 1.设计思想 2.具体实现 二、peft库 三、完整的训练代码 四、总结 写在前面 现在有很多开源的大模型&#xff0c;他们一般都是通用的&#xff0c;这就意味着这些开源大模型在特定任务上可能力不从心。为了适应我们的下游任务&#xff0c;…...

Spring Cloud学习笔记(Nacos):基础和项目启动

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、基础和版本选择2、启动项目2.1、源码启动项目2.2、命令行启动 1、基础和版本选择 Nacos是用于服务发现和注册&#xff0c;是Spring Cloud Alibaba的核心模块。 根据文档&#xff0c;Spring Cloud Alibaba的版…...

音频提取特征

目录 音频提取特征 音频切割 依赖项&#xff1a; pip install librosa pip install transformers 音频提取特征 import librosa import numpy as np import torch from transformers import Wav2Vec2Processorprocessor Wav2Vec2Processor.from_pretrained("faceboo…...

AJAX前端与后端交互技术知识点以及案例

Promise promise对象用于表示一个异步操作的最终完成&#xff08;或失败&#xff09;及其结果值 好处&#xff1a; 逻辑更清晰了解axios函数内部运作机制成功和失败状态&#xff0c;可以关联对应处理程序能解决回调函数地狱问题 /*** 目标&#xff1a;使用Promise管理异步任…...

[AutoSar]BSW_Diagnostic_003 ReadDataByIdentifier(0x22)介绍

目录 关键词平台说明背景一、请求格式二、常用DID三、响应格式四、NRC五、case 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector &#xff0c; EB芯片厂商TI 英飞凌编程语言C&#xff0c;C编译器HighTec (GCC)au…...

如何将 iPhone 实况照片传输到电脑:四种最佳方法

实况照片是一种有趣的拍摄形式&#xff0c;它不仅能捕捉静态画面&#xff0c;还能记录下带有动态和声音的短暂瞬间。轻按一张实况照片&#xff0c;它就会 “动起来”&#xff0c;还原拍摄时几秒的动态画面和现场声音。 如果你已经掌握了普通照片从 iPhone 传输到电脑的方法&…...

【Hung-yi Lee】《Introduction to Generative Artificial Intelligence》(6)

图片来自于 midjourney Introduction to Generative AI 2024 Spring 文章目录第11講&#xff1a;大型語言模型在「想」什麼呢&#xff1f; — 淺談大型語言模型的可解釋性&#xff08;24.05.03&#xff09;参考第11講&#xff1a;大型語言模型在「想」什麼呢&#xff1f; — 淺…...

nuScenes数据集避坑指南:从数据下载到多模态可视化完整流程

nuScenes数据集实战全解析&#xff1a;从环境搭建到多模态融合可视化 自动驾驶研究离不开高质量的数据集支持&#xff0c;而nuScenes作为目前最全面的多模态自动驾驶数据集之一&#xff0c;包含了丰富的传感器数据和精细的标注信息。但在实际使用过程中&#xff0c;从数据下载到…...

从攻到防:实战演练基于Wireshark与Snort的DoS攻击检测

1. 拒绝服务攻击初探&#xff1a;原理与危害剖析 想象一下周末去热门餐厅吃饭的场景。当所有座位都被占满&#xff0c;门口还不断涌入大量"假顾客"时&#xff0c;真正的食客就会被挡在门外——这就是拒绝服务攻击&#xff08;DoS&#xff09;的生动写照。作为网络安…...

Cosmos-Reason1-7B部署教程:Docker镜像免配置+7860端口快速启用

Cosmos-Reason1-7B部署教程&#xff1a;Docker镜像免配置7860端口快速启用 1. 项目概述 Cosmos-Reason1-7B是NVIDIA推出的7B参数多模态视觉语言模型(VLM)&#xff0c;专注于物理理解和思维链推理能力。作为Cosmos世界基础模型平台的核心组件&#xff0c;它能够处理图像和视频…...

Java中如何实现Excel跨工作表数据复制

本文介绍了如何在Java程序中有效地复制Excel工作表中的数据。许多Java开发人员需要将数据从一个工作表复制到另一个工作表。本文提供了一个代码示例来帮助您解决这个问题。核心是如何在Java中有效地复制Excel工作表中特定区域的数据。下面的例子是使用Java库&#xff08;具体的…...

Janus-Pro-7B效果展示:手写体/表格/多语言混合OCR识别准确率实测

Janus-Pro-7B效果展示&#xff1a;手写体/表格/多语言混合OCR识别准确率实测 1. 引言 你有没有遇到过这样的场景&#xff1f;翻出一张老照片&#xff0c;背面是长辈用钢笔写下的寄语&#xff0c;字迹有些潦草&#xff0c;想把它转成电子版保存&#xff0c;却一个字也认不出来…...

Leather Dress Collection 角色扮演效果:模拟不同风格的IT技术面试官

Leather Dress Collection 角色扮演效果&#xff1a;模拟不同风格的IT技术面试官 最近在玩一个挺有意思的AI工具&#xff0c;叫Leather Dress Collection。名字听起来有点怪&#xff0c;但它有个功能让我眼前一亮&#xff1a;角色扮演。你可以让它扮演各种角色&#xff0c;并且…...

XposedRimetHelper:如何优雅解决远程办公的定位打卡难题?[特殊字符]

XposedRimetHelper&#xff1a;如何优雅解决远程办公的定位打卡难题&#xff1f;&#x1f680; 【免费下载链接】XposedRimetHelper Xposed 钉钉辅助模块&#xff0c;暂时实现模拟位置。 项目地址: https://gitcode.com/gh_mirrors/xp/XposedRimetHelper 面对企业日益严…...

LoRA训练助手入门解析:为什么权重排序对LoRA训练效果影响显著

LoRA训练助手入门解析&#xff1a;为什么权重排序对LoRA训练效果影响显著 1. 认识LoRA训练助手 如果你正在尝试训练自己的AI绘画模型&#xff0c;可能会遇到一个常见问题&#xff1a;为什么同样的图片&#xff0c;用不同的标签训练出来的效果差距那么大&#xff1f;这就是我们…...