楼主:
yam276 ('_')
2025-06-09 17:11:391456. Maximum Number of Vowels in a Substring of Given Length
题目:
维护一个 sliding window
看 k 大小的窗口滑到底
窗口内最多有几个元音
思路:
每次滑动看进来的是不是元音
离开的是不是元音
多一个 if i>= k 判断就可以省一个起始窗口 for
Code:
impl Solution {
pub fn max_vowels(s: String, k: i32) -> i32 {
pub fn is_vowel(c: char) -> bool {
matches!(c, 'a' | 'e' | 'i' | 'o' | 'u')
}
let s_chars: Vec<char> = s.chars().collect();
let k = k as usize;
let mut count = 0;
let mut max_count = count;
for (i, c) in s_chars.iter().enumerate() {
if is_vowel(*c) {
count += 1;
}
if i >= k {
if is_vowel(s_chars[i - k]) {
count -= 1;
}
}
max_count = max_count.max(count);
}
max_count
}
}