1. 程式人生 > 其它 >LeetCode——1456. 定長子串中母音的最大數目

LeetCode——1456. 定長子串中母音的最大數目

技術標籤: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'; } }

執行結果:
在這裡插入圖片描述