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

简介: 1456.定长子串中元音的最大数目

题目:给你字符串 s 和整数 k 。

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

英文中的 元音字母 为(a, e, i, o, u)。

             

解题思路:

1.右侧新进入窗口的字母为元音字母,左侧移出窗口的字母也是元音字母,这样一进一出抵消了。

2.右侧新进入窗口的字母为元音字母,左侧移出窗口的字母非元音字母,此时元音字母个数+1

3.右侧新进入窗口的字母非元音字母,左侧移出窗口的字母为元音字母,此时元音字母个数-1

class Solution{
    public int maxVowels(String s,int k){
        int n=s.length();
        int vowel_count=0;
        for(int i=0;i<k;++i){
            vowel_count+= isVowel(s.charAt(i));       
        }    
        int ans=vowel_count;
        for(int i=k;i<n;++i){
            vowel_count +=isVowel(s.charAt(i))-isVowel(s.charAt(i-k));
            ans=Math.max(ans,vowel_count);        
        }
        return ans;
    }
    public int isVowel(char ch){
        return ch=='a'|| ch=='e' || ch=='i' ||ch=='o' || ch=='u' ?1:0;    
    }
}


相关文章
|
5天前
|
存储 索引
|
5天前
leetcode-1220:统计元音字母序列的数目
leetcode-1220:统计元音字母序列的数目
32 0
|
5天前
leetcode-434:字符串中的单词数
leetcode-434:字符串中的单词数
29 1
|
5天前
|
存储
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
【题型总结】寻找满足字符出现奇数次/偶数次的子串个数或者子串最长长度
44 0
|
5天前
|
算法 测试技术 C#
【线段树】2213. 由单个字符重复的最长子字符串
【线段树】2213. 由单个字符重复的最长子字符串
|
5天前
|
索引
leetcode-1624:两个相同字符之间的最长子字符串
leetcode-1624:两个相同字符之间的最长子字符串
23 0
|
10月前
|
算法 C语言 C++
【前缀和】1456.定长子串中元音的最大数目
本篇将学习前缀和OJ题定长子串中元音的最大数目相关知识。
51 1
有效的字母异位数
有效的字母异位数
74 0
|
Python
LeetCode 1456. 定长子串中元音的最大数目
给你字符串 s 和整数 k 。
125 0
每日三题-无重复字符的最长子串、最长连续序列、找到字符串中所有字母异位词
每日三题 无重复字符的最长子串 最长连续序列 找到字符串中所有字母异位词
76 1
每日三题-无重复字符的最长子串、最长连续序列、找到字符串中所有字母异位词