思路:滑动窗口,从第一个可行的开始往右滑,左边界是则数目–,右边界的右边是则数目++,每次滑动之后和an比较大小
代码:
class Solution {
public:
int maxVowels(string s, int k) {
int l = s.size();
int last = 0;
int first = 0;
int now = 0;
int an = 0;
for(int i = 0; i < k; i++){
if(ifYuan(s[i])){
an++;
now++;
}
}
last = k;
while(last < l){
if(ifYuan(s[last])){
now++;
}
if(ifYuan(s[first])){
now--;
}
// cout << ifYuan(s) << endl;
an = max(an, now);
last++;
first++;
}
return an;
}
bool ifYuan(char x){
if(x == 'a'){
return true;
}
if(x == 'e'){
return true;
}
if(x == 'i'){
return true;
}
if(x == 'o'){
return true;
}
if(x == 'u'){
return true;
}
return false;
}
};