[100天算法】-定长子串中元音的最大数目(day 67)
题目描述
给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。示例 1:输入:s = "abciiidef", k = 3
输出:3
解释:子字符串 "iii" 包含 3 个元音字母。
示例 2:输入:s = "aeiou", k = 2
输出:2
解释:任意长度为 2 的子字符串都包含 2 个元音字母。
示例 3:输入:s = "leetcode", k = 3
输出:2
解释:"lee"、"eet" 和 "ode" 都包含 2 个元音字母。
示例 4:输入:s = "rhythms", k = 4
输出:0
解释:字符串 s 中不含任何元音字母。
示例 5:输入:s = "tryhard", k = 4
输出:1提示:1 <= s.length <= 10^5
s 由小写英文字母组成
1 <= k <= s.length来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
看到题目第一个想法就是滑动窗口了,因为子字符串的长度 k 是固定的,所以真的很简单。
- 使用一个长度为 k 的窗口从 s 的左侧滑向右侧
- 分别计算窗口中包含的元音个数,最终返回最大值
要点是如何计算窗口中的元音个数?如果窗口每移动一步就遍历计算一次,必然是超时的。
其实仔细想想,窗口每次移动时,其中包含的元素只有两个变化:
- 窗口左侧丢弃了一个元素
- 窗口右侧新增了一个元素
那这样我们只需要在滑动开始时记录一下窗口中的元音个数 count,之后移动窗口时判断左侧丢弃的元素和右侧新增的元素是不是元音,对应地减少或者增加 count 就行。

复杂度
- 时间复杂度:$O(N)$,N 为字符串的长度。
- 空间复杂度:$O(1)$。
代码
/*** @param {string} s* @param {number} k* @return {number}*/
var maxVowels = function (s, k) {const vowels = new Set(["a", "e", "i", "o", "u"]);let count = 0,l = 0,r = 0;while (r < k) {vowels.has(s[r]) && count++;r++;}let max = count;while (r < s.length) {vowels.has(s[r]) && count++;vowels.has(s[l]) && count--;l++;r++;max = Math.max(max, count);}return max;
};相关文章:
[100天算法】-定长子串中元音的最大数目(day 67)
题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。示例 1:输入:s "abciiidef", k 3 输出:3 解释…...
Elastic Observability 8.11:ES|QL、APM 中的通用分析和增强的 SLOs
作者:Tom Grabowski, Katrin Freihofner, Israel Ogbole Elastic Observability 8.11 引入了 ES|QL for Observability(技术预览版)、Universal ProfilingTM 和 Elastic APM 集成,以及针对 Elastic Observability 的新 SLO &#…...
TexGen简单模型对应inp文件简单梳理-2
模型 默认最简单的编织复材,编辑材料属性时发现基体属性设置正常,各向同性材料,但是纱线的材料属性却没有弹性性能的设置。 导出inp文件后,导入ABAQUS中其实可以看到有两种材料,纱线也是有属性的。 ABAQUS中修改属性的…...
VUE获取当前日期的周日和周六
<template><div><div click"handleLast()">上一周</div><div click"handleNext()">下一周</div><el-calendarref"monChild"v-model"value":first-day-of-week"7":range"[sta…...
K8S篇之k8s containerd模式fail to pull image certificate signed by unknown authority
"k8s containerd模式fail to pull image certificate signed by unknown authority"的问题 解决方案:您有两个选择:配置证书或禁用证书验证。 配置证书:您可以为 containerd 配置证书,使其信任由未知机构签名的证书。 具…...
算法进阶指南图论 最优贸易
最优贸易 题目描述 C C C 国有 n n n 个大城市和 m m m 条道路,每条道路连接这 n n n 个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 m m m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的…...
【Android】Debug时禁用主线程ANR限制
ANR全称Application Not Response,指主线程超过5s无响应,应用会自动退出 由于这个线程,如果我们给主线程加了断点,就会触发ANR,导致调试时应用退出 这样调试起来会非常麻烦,其实对于Debug应用,…...
P6入门:项目初始化1-项目详情介绍
前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…...
进行 “最佳价格查询器” 的开发
前置条件 public class Shop {private final String name;private final Random random;public Shop(String name) {this.name name;random new Random(name.charAt(0) * name.charAt(1) * name.charAt(2));}public double getPrice(String product) {return calculatePrice…...
Brain Teaser概率类 - 三局两胜制
问题 三局两胜制比赛,两局结束还是三局结束的概率大? 解答 假设每局比赛的结果是独立同分布的,且遵循伯努利分布,其中一方的胜率为p,另一方为1-p. 则两局结束的概率是 p 2 ( 1 − p ) 2 ≥ 0.5 p^2 (1-p)^2 \geq …...
在现实生活中传感器GV-H130/GV-21的使用
今天,收获了传感器GV-H130/GV-21,调试探头的用法,下面就来看看吧!如有不妥欢迎指正!!!! 目录 传感器GV-H130/GV-21外观 传感器调试探头 探头与必要准备工作 传感器数值更改调试 …...
海康Visionmaster-全局脚本:通过通讯触发快速匹配 模块换型的方法
如何实现根据通讯信号切换快速匹配的模型文件并触发流程执行? 1.动态切换模板需在全局脚本中调用相关接口实现,可以在全局脚本的通讯数据接收回调中实现代码逻辑,代码如下。 C# using System; using VM.GlobalScript.Methods; using System.…...
什么是闭包
闭包是指函数在定义时可以访问其词法作用域的能力,即使函数在定义之后被传递到了其他地方执行。它包含了两个主要的特性:函数内部可以访问外部函数作用域中的变量,而这些变量在函数执行完毕后依然保持在内存中。 具体来说,闭包的…...
sql6(Leetcode1387使用唯一标识码替换员工ID)
1112-2 代码: INNER JOIN 如果表中有至少一个匹配,则返回行 LEFT JOIN 即使右表中没有匹配,也从左表返回所有的行(LEFT为基准 RIGHT JOIN 即使左表中没有匹配,也从右表返回所有的行 # Write your MySQL query st…...
qt-C++笔记之Qt中的时间与定时器
qt-C笔记之Qt中的时间与定时器 code review! 文章目录 qt-C笔记之Qt中的时间与定时器一.Qt中的日期时间数据1.1.QTime:获取当前时间1.2.QDate:获取当前日期1.3.QDateTime:获取当前日期和时间1.4.QTime类详解1.5.QDate类详解1.6..QDateTime类…...
【C++】复杂的多继承及其缺陷(菱形继承)
本篇要分享的内容是C中多继承的缺陷:菱形继承。 以下为本篇目录 目录 1.多继承的缺陷与解决方法 2.虚继承的底层原理 3.虚继承底层原理的设计原因 1.多继承的缺陷与解决方法 首先观察下面的图片判断它是否为多继承 这实际上是一个单继承,单继承的特…...
esp32-rust-no_std-examples-blinky
什么是裸机环境? 裸机环境是指没有可供使用的操作系统环境。当编译的 Rust 程序拥有 no_std 属性时,该程序无权访问上述 std 章节中提到的某些特定功能。尽管仍支持使用配网或引入复杂数据结构等功能,但实现方式将会更加复杂。 no_std…...
GitHub上的开源工业软件
github上看到一个中国人做的流体力学开源介绍,太牛了! https://github.com/clatterrr/FluidSimulationTutorialsUnity 先分析一下工业仿真软件赛道 工业仿真软件的赛道和产品主要功能如下: 1. 工艺仿真赛道: - 工厂布局优化&am…...
Centos7安装配置中文输入法
Centos7安装配置中文输入法 在安装CentOS时,我们为了方便使用,语言选择了中文,但是我们发现,在Linux命令行或者是浏览器中输入时,我们只能输入英文,无法输入汉字。 来,跟随脚步,设…...
【OJ比赛日历】快周末了,不来一场比赛吗? #11.11-11.17 #12场
CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 2023-11-11(周六) #5场比赛2023-11-12…...
从3ds Max无缝迁移到Blender:BsMax插件让3D艺术家零成本过渡
从3ds Max无缝迁移到Blender:BsMax插件让3D艺术家零成本过渡 【免费下载链接】BsMax BsMax Blender Addon (UI simulator/ Modeling/ Rigg & Animation/ Render Tools and ... 项目地址: https://gitcode.com/gh_mirrors/bs/BsMax 你是否曾经因为工作需要…...
交通枢纽对讲广播降噪难?A-59 模块一站式解决回音、啸叫、远场拾音|嵌入式实战方案
针对高铁站、机场、地铁、客运站等交通枢纽高噪、大混响、多终端并发对讲场景,本文基于 A-59 工业级双通道语音处理模块,给出可直接量产的回音消除 双波束拾音 全双工通话解决方案,含硬件接口、典型模式、场景配置与实测效果,适…...
Qwen3-4B-Instruct部署案例:ARM架构服务器(如Mac M2/M3)适配实测
Qwen3-4B-Instruct部署案例:ARM架构服务器(如Mac M2/M3)适配实测 1. 模型概述 Qwen3-4B-Instruct-2507是Qwen3系列的端侧/轻量旗舰模型,专为高效推理和边缘计算场景优化。该模型原生支持256K token(约50万字…...
Linux中的cp命令
cp命令的作用:用于复制文件和目录 1.基本语法: cp [选项] 源文件 目标文件 cp [选项] 源文件... 目标目录 2.常用选项: 选项完整写法说明-i--interactive交互模式,覆盖前提示确认-r--recursive递归复制目录(复制目录…...
ACE-GF框架:跨密码学曲线的统一身份管理方案
1. ACE-GF框架核心架构解析ACE-GF(Atomic Cryptographic Entities Generative Framework)是一种革命性的密码学身份管理框架,其核心创新在于通过单一根熵值(REV)实现跨密码学曲线的统一身份管理。这个设计理念源于对现…...
vscode@python语言插件组合@语言服务器插件功能异常排查
文章目录abstractastral系列产品python插件功能配置和异常排查pylancetyabstract vscode中python基础插件和增强插件: Python - Visual Studio Marketplace 支持 Python 语言,并提供 IntelliSense (Pylance)、调试 (Python Debugger)、代码检查、格式化、重构、单元…...
PHP GitHub API测试驱动开发:如何编写高质量的API客户端测试
PHP GitHub API测试驱动开发:如何编写高质量的API客户端测试 【免费下载链接】php-github-api A simple PHP GitHub API client, Object Oriented, tested and documented. 项目地址: https://gitcode.com/gh_mirrors/ph/php-github-api 在现代PHP开发中&…...
Go语言零依赖Web框架Kheish:极简设计与高性能路由实现
1. 项目概述:一个轻量级、高性能的Web框架 如果你正在寻找一个能让你快速构建API或Web应用,同时又不想被臃肿的框架和复杂的配置所束缚的工具,那么 graniet/kheish 这个项目很可能就是你的菜。这是一个用Go语言编写的Web框架,它…...
【大白话说Java面试题】【Java基础篇】第9题:HashMap根据key查询元素的时间复杂度是多少
第9题:HashMap根据key查询元素的时间复杂度是多少 📚 回答:理想情况(无哈希冲突): 如果key没有发生哈希冲突,直接通过数组下标定位到目标元素,查询时间复杂度为O(1)。链表存储&#…...
从实验室到论文:手把手教你用MP DSS构建小鼠肠炎模型(附详细步骤与DAI评分避坑指南)
从实验室到论文:手把手教你用MP DSS构建小鼠肠炎模型(附详细步骤与DAI评分避坑指南) 在炎症性肠病研究领域,动物模型的构建质量直接影响实验数据的可靠性。作为被8000多篇文献验证的金标准,DSS诱导的小鼠肠炎模型因其与…...
