滑动窗口刷题(四)困难

目录

串联所有单词的子串

1.题目解析

2.算法思路

3.代码编写




1.题目解析

例:如果 s = "barfoothefoobarman" word = ["foo","bar"]

那么就去s中寻找"foobar"或者"barfoo",返回找到字串的起始位置。

s = "barfoofoobarthefoobarman" word = ["bar","foo","the"]

那么就去s中寻找"barfoothe","barthefoo","foobarthe","foothebar","thef7oobar","thebarfoo".

2.算法思路

哈希表+滑动窗口

哈希表部分

定义hash1存储word中的字符串。

定义两个维护窗口的指针left,right。

定义hash2存储s中的字符串。

滑动窗口部分

进窗口:将长度为word[0].size()的字符存入hash2

判断:看窗口的长度,是否大于寻找字串的长度

出窗口:将长度为word[0].size()的字符从hash2中删除

3.代码编写

class Solution {
public:vector<int> findSubstring(string s, vector<string>& words) {unordered_map<string,int> map1;for(string &str : words){map1[str]++;} vector <int>ans;int len = words[0].size();//单词长度int n = words.size();//if(len > s.size()){return {};}for(int i = 0; i < len; i++){int count = 0;unordered_map<string,int> map2;//存储字符串sfor(int left = i, right = i; right <= s.size()-len; right += len){string in = s.substr(right,len);//进窗口if(++map2[in] <= map1[in])count++;if((right-left+1) > n*len && left < right)//判断1{string out = s.substr(left,len);if(map2[out]-- <= map1[out])//出窗口{count--;}left += len;}if(count == n){ans.push_back(left);}}}return ans;}
};

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

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

相关文章

计算机二级MySQL-错题、知识点合集04

计算机二级MySQL 第四章 索引 主键约束&#xff0c;不允许为空也不允许重复。 NOT NULL非空约束属于自定义完整约束 PRIMARY KEY 属于实体完整性约束 FOREIGN KEY外键约束 外键与其引用的主键应分别属于不同的表&#xff0c;可以属于同一个关系&#xff1b;一个关系中可以定…

回溯例题(leetcode17/37)

文章目录 leetcode37leetcode17 回溯跟枚举差不多。要注意“回溯”&#xff0c;别忘记“回”之前把之前的改动都复原。 leetcode37 leetcode37是解数独问题。本题保证有且仅有唯一解。 思路&#xff1a;先把空格子的位置存下来&#xff0c;然后对每一个空位置挨个枚举1-9。枚…

spring boot 实现定时任务(Spring Task)

spring boot 实现定时任务&#xff08;Spring Task&#xff09; 一、Spring Task介绍 从Spring 3开始&#xff0c;Spring自带了一套定时任务工具Spring-Task&#xff0c;可以把它看成是一个轻量级的Quartz&#xff0c;使用起来十分简单&#xff0c;除Spring相关的包外不需要额…

强大而灵活的python装饰器

装饰器&#xff08;Decorators&#xff09; 一、概述 在Python中&#xff0c;装饰器是一种特殊类型的函数&#xff0c;它允许我们修改或增强其他函数的功能&#xff0c;而无需修改其源代码。装饰器在函数定义之后立即调用&#xff0c;并以函数对象作为参数。装饰器返回一个新…

电机应用-正点原子直流有刷电机例程笔记

目录 基础驱动实验&#xff1a;调速和换向 初始化工作 电机基础驱动API 电压、电流、温度检测实验 初始化工作 采集工作 编码器测速实验 编码器接口计数原理 初始化工作 编码器测速工作 速度环控制实现 PID相关函数 PID运算 电流环控制实现 PID相关函数 PID运算…

kswapd0挖矿病毒攻击记录

文章目录 一、起因与病毒分析1、起因2、阿里云告警2.1 恶意脚本代码执行12.2 恶意脚本代码执行22.3恶意脚本代码执行32.4 恶意脚本代码执行4 3、病毒简单分析3.1 病毒的初始化3.2 病毒本体执行 4、总结 二、ubuntu自救指南1、病毒清理2、如何防御 一、起因与病毒分析 1、起因 …

颠覆好莱坞,Sora最强竞对LTX Studio发布,普通人也能手搓电影

2月29日&#xff0c;著名AI平台Lightricks在官网宣布&#xff0c;推出生成式AI电影制作平台—LTX Studio。用户只需要输入文本就能生成超25秒的微电影视频&#xff0c;同时可对镜头切换、角色、场景一致性、摄像机、灯光等进行可视化精准控制。 Sora生成的视频由神经网络完成&…

HTML---Ajax

文章目录 目录 文章目录 前言 一.Ajax概述 二.原生创建Ajax 三,使用Jquery处理Ajax 总结 一.Ajax概述 AJAX&#xff08;Asynchronous Javascript And XML&#xff09;是一种创建交互式网页应用的网页开发技术。它使用Javascript语言与服务器进行异步交互&#xff0c;可以传…

你敢信?软件测试万能面试脚本他来了?

写在前面&#xff1a; 过春节了&#xff0c;四舍五入接下来马上要年底了&#xff0c;新一波的跳槽旺季马上来临&#xff0c;不知道你是不是已经安于现状&#xff0c;还是蓄势待发呢&#xff1f;最近我和我的哈皮群友们一顿讨论&#xff0c;拟写了大家可能会遇到的面试情况&…

根据二层封装协议决定—网络类型

目录 一、网络类型的分类 二、数据链路层协议 MA网络 以太网协议 P2P网络 一、网络类型的分类 P2P --- point to point --- 点到点网络 MA --- Multi-Access Network --- 多点接入网络 BMA --- Broadcast Multi-Access Network --- 广播型多点接入网络 NBMA --- Non-Bro…

AttributeError: ‘list‘ object has no attribute ‘view‘

问题描述 训练yolov9的时候遇到了下面的问题。 In loss_tal.py: pred_distri, pred_scores torch.cat([xi.view(feats[0].shape[0], self.no, -1) for xi in feats], 2).split( (self.reg_max * 4, self.nc), 1) The error is as follows&#xff1a; AttributeError: list …

windows server mysql 数据库停止 备份 恢复全流程操作方法

一,mysql备份 mysql最好是原工程文件备份.不需要sql查询的方式备份.安全高效. 比如,安装php与mysql组合后,我的mysql文件保存在: D:\phpstudy_pro\Extensions\MySQL5.7.26\data\dux 我只需要复制一份,保存起来就行. 二,mysql恢复 怎么恢复呢.我们一般是只恢复其中一个表,则找…