https://leetcode-cn.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length/
先收集长度为k的窗口内元音个数 。滑动窗口,判断窗口右端为元音,就加一,左端不为元音减一。
var maxVowels = function (s, k) {
const map = {
a: 1,
e: 1,
i: 1,
o: 1,
u: 1
}
let i = 0;
let count = 0;
let max = 0
while (i < s.length) {
if (i < k ) {
if (map[s[i]]) count++
} else {
if (map[s[i]]) count++
if (map[s[i - k]]) count--
}
i++
max = Math.max(max, count)
}
return max
}
时间复杂度:$O(N)$,N 为字符串的长度。 空间复杂度:$O(1)$。