【算法专题突破】滑动窗口 - 找到字符串中所有字母异位词(14)

news2024/9/24 1:27:39

目录

1. 题目解析

2. 算法原理

3. 代码编写

写在最后:


1. 题目解析

题目链接:438. 找到字符串中所有字母异位词 - 力扣(Leetcode)

 这道题很好理解,就是找出从不同位置开始的所有异位词。

2. 算法原理

那我们该如何快速判断是否是异位词呢?

因为异位词的字符种类和数量是一样的,用哈希表就可以很容易的比较。

思路和代码都还是比较简单的:

我们直接维护一个定长的窗口,

然后通过把字符插入哈希计数,然后每走一步判断是否是异位词即可。

3. 代码编写

class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        unordered_map<char, int> win;
        unordered_map<char, int> cmp;
        vector<int> ans;
        for(auto e : p) cmp[e]++;
        int left = 0, right = 0;
        while(right < s.size()) {
            win[s[right++]]++;
            if(right - left > p.size()) {
                win[s[left]]--;
                if(win[s[left]] == 0) win.erase(s[left]);
                left++;
            }
            if(win == cmp) ans.push_back(left);
        }
        return ans;
    }
};

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

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

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

相关文章

下载安装python的详细步骤-2023

目录 一、介绍 二、下载 三、安装 四、测试 一、介绍 读者手册&#xff08;必读&#xff09;_csdn文章评分怎么看_云边的快乐猫的博客-CSDN博客 Python 是一种高级编程语言&#xff0c;具有简洁、易读、易学的特点。它由Guido van Rossum于1989年首次发布&#xff0c;并于1…

无涯教程-JavaScript - ACOTH函数

描述 ACOTH函数返回数字的反双曲余切。 语法 ACOTH (number)争论 Argument描述Required/OptionalNumberThe absolute value of Number must be greater than 1. i.e., Number must be must be less than -1 or greater than 1.Required Notes 用于计算双曲反余切的方程为-…

【第200篇原创文章】解决低于1%概率出现的芯片VPSS模块跑飞的问题

在发布SDK内测的时候&#xff0c;我们发现在切换视频分辨率的时候有低概率出现VPSS模块跑飞的情况&#xff0c;概率低于1%&#xff0c;试个两三百次&#xff0c;能出1~2次。切换视频分辨率这个功能在安防产品上也确实存在需求&#xff0c;网络带宽不大好的地方分辨率可以适当下…

边缘计算AI智能安防监控视频平台车辆违停算法详解与应用

随着城市车辆保有量呈现高速增长趋势&#xff0c;交通拥堵、违章行为也日益泛滥。因为车辆未停放在指定区域导致的车位浪费、占用/堵塞交通要道、车辆剐蹭等问题层出不穷。通过人工进行违法停车的监控&#xff0c;不仅让监控人员工作负荷越来越大&#xff0c;而且存在发现不及时…

文心一言:中文生成式对话产品

【产品介绍】 名称 文心一言上线/成立时间 2023年3月27日具体描述 文心一言&#xff08;英文名&#xff1a;ERNIE Bot&#xff09;是百度全新一代知识增强大语言模型&#xff0c;文心大模型家族的新成员&#xff0c;能够与人对话互动&#xff0c;回答问…

pacman下载源失败怎么办

背景 编译c程序的时候&#xff0c;提示链接失败&#xff0c;错误如下&#xff1a; clang-15: error: linker command failed with exit code 1 (use -v to see invocation) [24/25] Linking CXX executable samples/xxx ninja: build stopped: subcommand failed.此处不过多介…

计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

数学实验-圆周率π的计算(Mathematica实现)

一、实验名称&#xff1a;圆周率π的计算 二、实验环境&#xff1a;机房、Mathematica 10.3软件 三、实验目的&#xff1a;通过各种方法在Mathematica中计算圆周率π的值&#xff0c; 四、实验内容及结果 1 数值积分法计算π 计算定积分的数值&#xff0c;就得到了的值&am…

外包干了2个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

基于SSM+Vue的理发店会员管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

普中51-数码管实验

文章目录 数码管实验**静态数码管实验**动态数码管实验多位数码管简介数码管动态显示原理74HC245 和74HC138芯片介绍74HC245 芯片简介74HC138 芯片简介 代码如下&#xff1a; 数码管实验 如图所示&#xff1a; 从上图可看出&#xff0c;一位数码管的引脚是 10 个&#xff0c;…

path环境变量设置

path是一个包含多个路径的变量&#xff0c;用于指定系统可执行文件的搜索路径。主要作用是能够让系统快速启动一个应用程序。当用户输入一个命令时&#xff0c;系统会在path指定的路径中搜索可执行文件&#xff0c;以确定命令所对应的可执行文件位置。 如运行txt&#xff0c;tx…

VMware虚拟化基础操作实战(基于ESXi6.7 操作系统安装CentOS7.5)

任务要求 环境要求 1、PC终端一台&#xff08;CPU 大于 8 核&#xff0c;内存大于8GB&#xff0c;Windows10 操作系统&#xff09; 2、VM虚拟机&#xff08;VMware workstation14 起&#xff09; 3、安装在虚拟机上的操作系统&#xff08;ESXi6.7 操作系统&#xff09; 4、在…

Sleuth--链路追踪(二)

1 Zipkin的集成 1.1 1 ZipKin介绍 Zipkin 是 Twitter 的一个开源项目&#xff0c;它基于Google Dapper实现&#xff0c;它致力于收集服务的定时数据&#xff0c;以解决微服务架构中的延迟问题&#xff0c;包括数据的收集、存储、查找和展现。 我们可以使用它来收集各个…

InnoDB的页分裂与页合并

数据组织方式 在 InnoDB 存储引擎中&#xff0c;表数据都是根据主键顺序组织存放的&#xff0c;这种存储方式的表称为索引组织表 行数据&#xff0c;都是存储在聚集索引的叶子节点上的。 在 InnoDB 引擎中&#xff0c;数据行是记录在逻辑结构 page 页中的&#xff0c;而每一…

每日一博 - 闲聊 API GateWay

文章目录 概念图解小结 概念 API Gateway&#xff08;API 网关&#xff09;是一个在现代应用程序和服务架构中起关键作用的组件&#xff0c;它具有多种功能和作用&#xff0c;主要包括以下方面&#xff1a; 路由和请求分发&#xff1a;API 网关充当前端入口&#xff0c;根据请…

css中BFC外边距塌陷解决办法

什么是BFC 块级格式化上下文&#xff0c;独立的渲染区域&#xff0c;与外部毫不相干&#xff0c;上下两个元素都设置了外边距&#xff0c;结果会出现重叠的部分合并 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /&…

2020-2023中国高等级自动驾驶产业发展趋势研究-中国高等级自动驾驶发展近况

1.2 中国高等级自动驾驶发展近况 通过对中国高等级自动驾驶行业的观察和分析&#xff0c;亿欧汽车认为&#xff0c;除技术解决方案提供商外&#xff0c;如今的车企、政府、资本同样在产业链中扮演重要角色。此外&#xff0c;车路协同技术的发展也为高等级自动驾驶的发展提供了更…

解密(2023寒假每日一题 20)

给定一个正整数 k k k &#xff0c;有 k k k 次询问&#xff0c;每次给定三个正整数 n i , e i , d i n_i,e_i,d_i ni​,ei​,di​ &#xff0c;求两个正整数 p i , q i p_i,q_i pi​,qi​ &#xff0c;使 n i p i q i &#xff0c; e i d i ( p i − 1 ) ( q i − 1 …

肖sir__mysql之三表__008

mysql之三表 create table student( stu_no int, stu_name varchar(10), sex char(1), age int(3), edit varchar(20) ) DEFAULT charsetutf8; insert into student values (1,‘wang’,‘男’,21,‘hello’), (2,‘小明’,‘女’,22,‘haha2’), (3,‘hu’,‘女’,23,‘haha3…