1456. 定长子串中元音的最大数目
这是一道滑动窗口问题,我们把元音的下标存入队列中,队列中元素的个数就是窗口中的元音个数。注意判断队头是否在窗口中,不在就去掉。
class Solution {
public:
int maxVowels(string s, int k) {
int q[100005];int hh=0,tt=-1;
int l=s.size(); int ant=0;
for(int i=0;i<l;i++)
{
if(hh<=tt && q[hh]<i-k+1)hh++;
if(check(s[i]))q[++tt]=i;
ant=max(ant,tt-hh+1);
}
return ant;
}
bool check(char c)
{
if(c=='a'||c=='u'||c=='e'||c=='i'||c=='o')
return 1;
return 0;
}
};