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, u).
Input: s = "abciiidef", k = 3 Output: 3 Explanation: The substring "iii" contains 3 vowel letters.
Input: s = "aeiou", k = 2 Output: 2 Explanation: Any substring of length 2 contains 2 vowels.
Input: s = "leetcode", k = 3 Output: 2 Explanation: "lee", "eet" and "ode" contain 2 vowels.
Input: s = "rhythms", k = 4 Output: 0 Explanation: We can see that s doesn't have any vowel letters.
Input: s = "tryhard", k = 4 Output: 1
1 <= s.length <= 10^5
s
consists of lowercase English letters.1 <= k <= s.length
class Solution:
def maxVowels(self, s: str, k: int) -> int:
i = 0
cnt = 0
ret = 0
for j in range(len(s)):
if s[j] in "aeiou":
cnt += 1
if j - i == k:
if s[i] in "aeiou":
cnt -= 1
i += 1
ret = max(ret, cnt)
return ret
# @param {String} s
# @param {Integer} k
# @return {Integer}
def max_vowels(s, k)
i = 0
cnt = 0
ret = 0
for j in 0...s.length
if "aeiou".include?(s[j])
cnt += 1
end
if j - i == k
if "aeiou".include?(s[i])
cnt -= 1
end
i += 1
end
ret = [ret, cnt].max
end
return ret
end