day-95 定长子串中元音的最大数目
思路
定长滑动窗口,先统计0至k-1有多少个元音字母,然后依次将窗口后移
解题过程
每次移动考虑新加入的单词是否是元音字母,移除的单词是否是元音字母
Code
class Solution {
public int maxVowels(String s, int k) {
int n = s.length();
int ans = 0;
for (int i = 0; i <= k - 1; i++) {
if (s.charAt(i) - 'a' == 0 || s.charAt(i) - 'a' == 4 || s.charAt(i) - 'a' == 8 || s.charAt(i) - 'a' == 14
|| s.charAt(i) - 'a' == 20) {
ans++;
}
}
int t=ans;
int l = 0, r = k;
while (r < n) {
if (s.charAt(r) - 'a' == 0 || s.charAt(r) - 'a' == 4 || s.charAt(r) - 'a' == 8 || s.charAt(r) - 'a' == 14
|| s.charAt(r) - 'a' == 20) {
t++;
}
if (s.charAt(l) - 'a' == 0 || s.charAt(l) - 'a' == 4 || s.charAt(l) - 'a' == 8 || s.charAt(l) - 'a' == 14
|| s.charAt(l) - 'a' == 20) {
t--;
}
ans=Math.max(ans,t);
l++;
r++;
}
return ans;
}
}
作者:菜卷
链接:https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length/solutions/3025785/ding-chang-zi-chuan-zhong-yuan-yin-de-zu-i28a/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。