Skip to content

Latest commit

 

History

History
96 lines (80 loc) · 2 KB

File metadata and controls

96 lines (80 loc) · 2 KB

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

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).

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.

Example 4:

Input: s = "rhythms", k = 4
Output: 0
Explanation: We can see that s doesn't have any vowel letters.

Example 5:

Input: s = "tryhard", k = 4
Output: 1

Constraints:

  • 1 <= s.length <= 10^5
  • s consists of lowercase English letters.
  • 1 <= k <= s.length

Solutions (Python)

1. Sliding Window

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

Solutions (Ruby)

1. Sliding Window

# @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