一、题目
给你字符串 s
和整数 k
。
请返回字符串 s
中长度为 k
的单个子字符串中可能包含的最大元音字母数。
英文中的 元音字母 为(a
, e
, i
, o
, u
)。
示例 1:
输入:s = "abciiidef", k = 3 输出:3 解释:子字符串 "iii" 包含 3 个元音字母。
二、思路
统计前k个字符中元音的数量,然后往后滑动,增加的一个新的,剔除的前面的旧的,判断是否是元音,进行数量更新。时间复杂度与s的长度成正比。
三、题解
class Solution:
def maxVowels(self, s: str, k: int) -> int:
vowel = {'a','e','i','o','u'}
count = 0
for item in s[:k]:
if item in vowel:
count += 1
maxcount = count
for num in range(k,len(s)):
if s[num] in vowel:
count += 1
if s[num-k] in vowel:
count -= 1
maxcount = max(count,maxcount)
return maxcount