Problem Statement
leetcode problem link
My Solution [Accepted]
class Solution:
    def maxVowels(self, s: str, k: int) -> int:
        vowels = {'a','e','i','o','u'}
        start = 0
        N = len(s)
        res = 0
        length = 0
        count = 0
        for end in range(N):
            ch = s[end]
            while end - start + 1 > k:
                if s[start] in vowels:
                    count -= 1
                start += 1
            if ch in vowels:
                count += 1
            if end - start + 1 == k:
                res = max(res, count)
        return res
Editorial Solution
class Solution:
    def maxVowels(self, s: str, k: int) -> int:
        vowels = {'a', 'e', 'i', 'o', 'u'}
        # Build the window of size k, count the number of vowels it contains.
        count = 0
        for i in range(k):
            count += int(s[i] in vowels)
        answer = count
        # Slide the window to the right, focus on the added character and the
        # removed character and update "count". Record the largest "count".
        for i in range(k, len(s)):
            count += int(s[i] in vowels)
            count -= int(s[i - k] in vowels)
            answer = max(answer, count)
        return answer