滑动窗口。

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

采用滑动窗口。每次移动一个位置,判断当前窗口内的子串内目标元素的个数,若比之前更大就更新结果。

如何判断是否更新结果?也即,如何判断当前窗口内所含目标元素个数,是否为遍历到这个窗口为止的最大值?

对于下图的字符串 abci,假如我们已经计算出了子串 abc 的元音个数,那么从子串 abc 到子串 bci,只需要考虑移除(离开窗口)的字母 a 是不是元音,以及添加(进入窗口)的字母 i 是不是元音即可,因为中间的字母 b 和 c 都在这两个子串中。

无非就这几种情况:

  • a 是,i 不是,则下一个窗口内的子串必不符合
  • a 是,b 也是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
  • a 不是,i是,则下一个窗口内的串必然刷新答案
  • a不是,i 不是,则下一个窗口内的子串必不符合(与当前最高记录个数相同)
相关推荐
带刺的坐椅7 分钟前
jFinal 使用 SolonMCP 开发 MCP(拥抱新潮流)
java·ai·solon·jfinal·mcp
陌尘(MoCheeen)28 分钟前
技术书籍推荐(002)
java·javascript·c++·python·go
牛马baby29 分钟前
Java高频面试之并发编程-16
java·开发语言·面试
cainiao08060529 分钟前
《Spring Boot 4.0新特性深度解析》
java·spring boot·后端
zizisuo40 分钟前
面试篇:Spring MVC
java·spring·mvc
-曾牛41 分钟前
Spring AI 与 Hugging Face 深度集成:打造高效文本生成应用
java·人工智能·后端·spring·搜索引擎·springai·deepseek
Brookty1 小时前
【Java学习】Lambda表达式
java·学习
孤寂大仙v1 小时前
【Linux笔记】——进程信号的保存
java·linux·笔记
饕餮争锋1 小时前
feign.RequestInterceptor 简介-笔记
java·开发语言·笔记
计算机学姐2 小时前
基于SpringBoot的小区停车位管理系统
java·vue.js·spring boot·后端·mysql·spring·maven