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

定长子串中元音的最大数目

给你字符串 s 和整数 k 。

请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。

英文中的 元音字母 为(aeiou)。

示例 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
题目解析:

字符串s中我们要找到一个大小为k的字串,分析每个长度为k的子串中所含元音数目,在所有子串中返回元音数目最多的那一个子串中的元音个数。所以我们的返回值不可能超过k,同时返回值最小可能为0,范围是[0,k]。

解法思路:

暴力解法:遍历所有长度为k的子串,然后分别计算每个子串的元音个数,最后取最大值。时间复杂度为O(nk)。

由于子串长度固定为k,所以我们使用定长滑动窗口解决

1.入窗口

2.判断

3.出窗口

4.更新结果(子串中元音最大数)

更新结果的代码放在窗口大小达到 k 之后

代码:
#include <algorithm>class Solution {
public:int maxVowels(string s, int k) {int left=0,right=0,cnt=0;int _m=0;for(;right<s.size();right++){if(s[right] == 'a'||s[right] == 'e'||s[right] == 'i'||s[right] == 'o'||s[right] == 'u'){cnt++;}if(cnt==k){return k;}if((right-left+1 )!= k){continue;}_m=max(cnt,_m);//更新结果if(s[left]=='a'||s[left]=='e'||s[left]=='i'||s[left]=='o'||s[left]=='u'){cnt--;  }left++;  }return _m;}
};

http://www.lryc.cn/news/586183.html

相关文章:

  • PyQt5布局管理(QBoxLayout(框布局))
  • OSPFv3-一二类LSA
  • Java 之字符串 --- String 类
  • 机器学习(ML)、深度学习(DL)、强化学习(RL)关系和区别
  • 箭头函数(Arrow Functions)和普通函数(Regular Functions)
  • 虚拟现实的镜廊:当技术成为存在之茧
  • 云端docker小知识
  • Java 大视界:基于 Java 的大数据可视化在智慧城市能源消耗动态监测与优化决策中的应用(2025 实战全景)
  • YOLO家族内战!v5/v8/v10谁才是你的真命天子?(附保姆级选择指南)
  • CCS-MSPM0G3507-2-定时器中断
  • 傅里叶方法求解正方形区域拉普拉斯方程
  • LeetCode经典题解:3、无重复字符的最长子串
  • jenkins自动化部署前端vue+docker项目
  • 洛谷 P11961 [GESP202503 五级] 原根判断-提高+/省选-
  • 【设计模式】单例模式 饿汉式单例与懒汉式单例
  • 玩转rhel9 Apache
  • 关于两种网络攻击方式XSS和CSRF
  • 剑指offer57_和为S的两个数字
  • script中crossorigin=“anonymous“是什么意思
  • Redis专题总结
  • 构建AI Agent的完整实战指南:从邮件助手案例看6步落地方法
  • docker基础与常用命令
  • Linux之Zabbix分布式监控篇(一)
  • Elasticsearch 的 `modules` 目录
  • Git常用命令一览
  • 中德英法西五语氛围刷题第一集:HTML命名空间CSS处理
  • Python问题记录`No module named ‘matplotlib‘` 问题解决方案
  • 苍穹外卖项目日记(day05)
  • UI前端大数据可视化实战策略分享:如何设计符合用户认知的数据可视化流程?
  • 以数据为核心,以业务为导向,漫谈数据可视化应用