46 lines
705 B
JavaScript
46 lines
705 B
JavaScript
const v = ['a', 'e', 'i', 'o', 'u']
|
|
const check = (str) => {
|
|
const map = new Map()
|
|
|
|
for (let i = 0; i < str.length; i++) {
|
|
if (v.includes(str[i])) {
|
|
map.set(str[i], (map.get(str[i]) || 0) + 1)
|
|
}
|
|
}
|
|
|
|
let res = 0
|
|
map.forEach(n => {
|
|
res += n
|
|
})
|
|
return res
|
|
}
|
|
|
|
/**
|
|
* @param {string} s
|
|
* @param {number} k
|
|
* @return {number}
|
|
*/
|
|
export const maxVowels = function (s, k) {
|
|
let i = 0
|
|
let res = 0
|
|
|
|
const temp = s.slice(i, i + k)
|
|
let tmp = check(temp)
|
|
res = Math.max(res, tmp)
|
|
|
|
while (i + k <= s.length) {
|
|
i++
|
|
if (v.includes(s[i + k - 1])) {
|
|
tmp++
|
|
}
|
|
|
|
if (v.includes(s[i - 1])) {
|
|
tmp--
|
|
}
|
|
|
|
res = Math.max(res, tmp)
|
|
}
|
|
|
|
return res
|
|
}
|