Skip to content

Files

Latest commit

f385924 · Apr 29, 2022

History

History
109 lines (72 loc) · 2.61 KB

File metadata and controls

109 lines (72 loc) · 2.61 KB

English Version

题目描述

给你字符串 s 和整数 k

请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。

英文中的 元音字母 为(a, e, i, o, u)。

 

示例 1:

输入:s = "abciiidef", k = 3
输出:3
解释:子字符串 "iii" 包含 3 个元音字母。

示例 2:

输入:s = "aeiou", k = 2
输出:2
解释:任意长度为 2 的子字符串都包含 2 个元音字母。

示例 3:

输入:s = "leetcode", k = 3
输出:2
解释:"lee"、"eet" 和 "ode" 都包含 2 个元音字母。

示例 4:

输入:s = "rhythms", k = 4
输出:0
解释:字符串 s 中不含任何元音字母。

示例 5:

输入:s = "tryhard", k = 4
输出:1

 

提示:

  • 1 <= s.length <= 10^5
  • s 由小写英文字母组成
  • 1 <= k <= s.length

解法

Python3

Java

TypeScript

function maxVowels(s: string, k: number): number {
    const n = s.length;
    let ans = 0;
    let preSum = new Array(n).fill(0);
    let cnt = 0;
    for (let i = 0; i < n && ans != k; i++) {
        let char = s.charAt(i);
        if (['a', 'e', 'i', 'o', 'u'].includes(char)) {
            cnt++;
        }
        preSum[i] = cnt;
        ans = Math.max(i < k ? cnt : preSum[i] - preSum[i - k], ans);
    }
    return ans;
}

...