本文主要是介绍1456.定长子串中元音的最大数目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:给你字符串 s 和整数 k 。
请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。
英文中的 元音字母 为(a, e, i, o, u)。
解题思路:
1.右侧新进入窗口的字母为元音字母,左侧移出窗口的字母也是元音字母,这样一进一出抵消了。
2.右侧新进入窗口的字母为元音字母,左侧移出窗口的字母非元音字母,此时元音字母个数+1
3.右侧新进入窗口的字母非元音字母,左侧移出窗口的字母为元音字母,此时元音字母个数-1
class Solution{public int maxVowels(String s,int k){int n=s.length();int vowel_count=0;for(int i=0;i<k;++i){vowel_count+= isVowel(s.charAt(i)); } int ans=vowel_count;for(int i=k;i<n;++i){vowel_count +=isVowel(s.charAt(i))-isVowel(s.charAt(i-k));ans=Math.max(ans,vowel_count); }return ans;}public int isVowel(char ch){return ch=='a'|| ch=='e' || ch=='i' ||ch=='o' || ch=='u' ?1:0; }
}
这篇关于1456.定长子串中元音的最大数目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!