Bootstrap

Rust 力扣 - 1456. 定长子串中元音的最大数目

题目描述

在这里插入图片描述

题解思路

我们遍历长度为k的窗口,我们只需要记录窗口内的元音字母数量即可,遍历过程中刷新最大数目

题解代码

impl Solution {
    pub fn max_vowels(s: String, k: i32) -> i32 {
        let s = s.as_bytes();
        let k = k as usize;

        let mut count = 0;

        fn is_vowel(c: u8) -> bool {
            c == b'a' || c == b'e' || c == b'i' || c == b'o' || c == b'u'
        }

		// 填满长度为k的窗口
        for i in 0..k {
            if is_vowel(s[i]) {
                count += 1;
            }
        }

        let mut ans = count;

        for i in k..s.len() {
        	// 加入窗口
            if is_vowel(s[i]) {
                count += 1;
            }

			// 移出窗口
            if is_vowel(s[i - k]) {
                count -= 1;
            }

            ans = ans.max(count);
        }

        ans
    }
}

题目链接

https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length/description/

;