力扣随机一题——所有元音按顺序排序的最长字符串

题目

1839. 所有元音按顺序排布的最长子字符串 - 力扣(LeetCode)

思路

利用滑动窗口的思想,对于每个窗口内的字符串都判断

  • 子字符串包含所有五个元音字母。
  • 子字符串中的元音字母按照字典序出现

用一个变量 maxLength 记录最长美丽子字符串的长度。

使用滑动窗口,遍历每个字符,并跟踪当前子字符串的元音字母是否满足字典序。

如果元音字母的顺序被打破,或者元音字母不满足条件(比如缺少某些元音),则重新开始。

更新 maxLength,并在找到符合条件的子字符串时更新其长度。

代码

java 复制代码
public int longestBeautifulSubstring(String word) {
        int max = 0;
        int sumChar = 0;
        int current = 0;
        for(int i=0;i<word.length();i++){
            if(i>0&&word.charAt(i)>=word.charAt(i-1)){
                current++;
                if(word.charAt(i)!=word.charAt(i-1)){
                    sumChar++;
                }
            }else{
                sumChar=1;
                current=1;
            }
            if(sumChar==5){
                max = Math.max(max,current);
            }
        }
        return max;
    }

结语

最近实习有点忙,都没时间刷题了💔

相关推荐
aini_lovee13 小时前
基于MATLAB的材料晶粒组织生长与变化模拟:方法、实现与应用
开发语言·算法·matlab
1104.北光c°13 小时前
【黑马点评项目笔记 | 优惠券秒杀篇】构建高并发秒杀系统
java·开发语言·数据库·redis·笔记·spring·nosql
t1987512813 小时前
基于MATLAB的Copula对数似然值计算与参数验证
人工智能·算法·matlab
ruleslol13 小时前
普通流(Stream<T>)和原始类型特化流(IntStream, LongStream, DoubleStream)的区别
java
隐退山林13 小时前
JavaEE初阶:文件操作和IO
java·java-ee
2501_9071368213 小时前
PDF增效工具 Quite imposing plus6
java·开发语言
潇冉沐晴13 小时前
div2 1064补题笔记(A~E)
笔记·算法
YuTaoShao13 小时前
【LeetCode 每日一题】3640. 三段式数组 II——(解法二)DP
算法·leetcode·职场和发展
Jaxson Lin13 小时前
Java编程进阶:智能仿真无人机项目3.0
java·笔记·无人机
是阿楷啊13 小时前
Java求职面试实录:互联网大厂场景技术点解析
java·redis·websocket·spring·互联网·大厂面试·支付系统