1456. Maximum Number of Vowels in a Substring of Given Length

Leetcode link

题目简介

/**
 * @param {string} s
 * @param {number} k
 * @return {number}
 */

题目给我们一个字符串 s 与数字 k

要求我们在 s 中找出每个长度为 k 的子字符串中的母音字符个数,并返回最大的个数有多少

解题思路

这题我们使用滑动窗口来求解

我们创建一个长度为 k 的窗口并计算其中母音字符的个数

移动窗口时,我们只需要判断窗口右侧与左侧两个字符是否为母音字符并更新窗口的母音字符个数即可

最后我们收集最大的母音字符个数返回

Javascript

/**
 * @param {string} s
 * @param {number} k
 * @return {number}
 */
var maxVowels = function (s, k) {
    const isVowel = (c) => c === 'a' || c === 'e' || c === 'i' || c === 'o' || c === 'u';
    let left = 0
    let right = 0
    let count = 0
    while (right < k) {
        if (isVowel(s[right])) {
            count++
        }
        right++
    }
    let cur = count

    while(right < s.length) {
        if(isVowel(s[right])) {
            cur++
        }
        if(isVowel(s[left])) {
            cur--
        }
        count = Math.max(cur, count)
        right++
        left++
    }
    return count
};

results matching ""

    No results matching ""