LeetCode-1456。固定長の部分文字列内の母音の最大数

タイトル説明:

文字列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';
    }
}

結果:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/FYPPPP/article/details/113564168