LeetCode——1456. 定長子串中母音的最大數目
阿新 • • 發佈:2021-02-03
技術標籤:JAVA滑動視窗leetcode字串leetcode演算法
題目描述:
給你字串 s 和整數 k 。請返回字串 s 中長度為 k 的單個子字串中可能包含的最大母音字母數。英文中的 母音字母 為(a, e, i, o, u)。
提示:
1 <= s.length <= 10^5
s 由小寫英文字母組成
1 <= k <= s.length
示例 1:
輸入:s = “abciiidef”, k = 3
輸出:3
解釋:子字串 “iii” 包含 3 個母音字母。
示例 2:
輸入:s = “aeiou”, k = 2
輸出:2
解釋:任意長度為 2 的子字串都包含 2 個母音字母。
示例 3:
輸入:s = “leetcode”, k = 3
輸出:2
解釋:“lee”、“eet” 和 “ode” 都包含 2 個母音字母。
示例 4:
輸入:s = “rhythms”, k = 4
輸出:0
解釋:字串 s 中不含任何母音字母。
示例 5:
輸入:s = “tryhard”, k = 4
輸出:1
程式碼如下:
class Solution {
public int maxVowels(String s, int k) {
int left = 0;
int right = 0;
int max = 0;
int count = 0;
while (right < s.length()) {
if (isYuanYin(s.charAt(right))) {
count++;
}
right++;
if (right - left == k) {
max = Math.max(max, count);
if (isYuanYin(s.charAt(left))) {
count-- ;
}
left++;
}
}
return max;
}
public boolean isYuanYin(char ch) {
return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
}
}
執行結果: