class Solution:
def maxVowels(self, s: str, k: int) -> int:
vowel = {'a', 'e', 'i', 'o', 'u'}
res = 0
for i in range(len(s) - k + 1):
cnt = 0
for j in range(i, i + k):
cnt += 1 if s[j] in vowel else 0
res = max(res, cnt)
return resclass Solution:
def maxVowels(self, s: str, k: int) -> int:
vowel = {'a', 'e', 'i', 'o', 'u'}
prefix = [0] * (len(s) + 1)
for i in range(len(s)):
prefix[i + 1] = prefix[i] + (1 if s[i] in vowel else 0)
res = 0
for i in range(k, len(s) + 1):
res = max(res, prefix[i] - prefix[i - k])
return resclass Solution:
def maxVowels(self, s: str, k: int) -> int:
vowel = {'a', 'e', 'i', 'o', 'u'}
l = cnt = res = 0
for r in range(len(s)):
cnt += 1 if s[r] in vowel else 0
if r - l + 1 > k:
cnt -= 1 if s[l] in vowel else 0
l += 1
res = max(res, cnt)
return resclass Solution:
def maxVowels(self, s: str, k: int) -> int:
def getId(c):
return ord(c) - ord('a')
mask = (1 << getId('a')) | (1 << getId('e')) | \
(1 << getId('i')) | (1 << getId('o')) | \
(1 << getId('u'))
l = cnt = res = 0
for r in range(len(s)):
cnt += ((mask >> getId(s[r])) & 1)
if r - l + 1 > k:
cnt -= ((mask >> getId(s[l])) & 1)
l += 1
res = max(res, cnt)
return res