文章目录
一、题目
1456. Maximum Number of Vowels in a Substring of Given Length
Given a string s and an integer k, return the maximum number of vowel letters in any substring of s with length k.
Vowel letters in English are 'a', 'e', 'i', 'o', and 'u'.
Example 1:
Input: s = "abciiidef", k = 3
Output: 3
Explanation: The substring "iii" contains 3 vowel letters.
Example 2:
Input: s = "aeiou", k = 2
Output: 2
Explanation: Any substring of length 2 contains 2 vowels.
Example 3:
Input: s = "leetcode", k = 3
Output: 2
Explanation: "lee", "eet" and "ode" contain 2 vowels.
Constraints:
1 <= s.length <= 105
s consists of lowercase English letters.
1 <= k <= s.length
二、题解
利用滑动窗口进行判断
cpp
class Solution {
public:
int maxVowels(string s, int k) {
int n = s.length();
unordered_map<char,int> map;
map['a'] = 1;
map['e'] = 1;
map['i'] = 1;
map['o'] = 1;
map['u'] = 1;
int count = 0;
int res = 0;
for(int i = 0;i < k;i++){
if(map[s[i]] == 1) count++;
}
res = max(res,count);
for(int i = k;i < n;i++){
if(map[s[i - k]] == 1) count--;
if(map[s[i]] == 1) count++;
res = max(res,count);
}
return res;
}
};