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

Medium

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 <= 10^5

  • s consists of lowercase English letters.

  • 1 <= k <= s.length

解題

func maxVowels(s string, k int) int {
    start := 0
    end := 0
    ans := 0
    count := 0

    for end < len(s) {
        if isVowel(s[end]) { count++ }
        ans = max(ans, count)

        if end - start + 1 == k {
            if isVowel(s[start]) { count-- }
            start++
            end++
        } else {
            end++
        }
    }

    return ans
}

func isVowel(b byte) bool {
    if b == 'a' || b == 'e' || b == 'i' || b == 'o' || b == 'u' {
        return true
    }

    return false
}

func max(a, b int) int {
    if a > b { return a }
    return b
}

Last updated