코딩테스트

[leetcode] 1456.Maximum Number of Vowels in a Substring of Given Length

nayoon 2024. 6. 24. 07:20

문제

 

주어진 길이의 substring 상 vowels 개수 구하기

class Solution {
    public int maxVowels(String s, int k) {
        int left = 0;
        int len = s.length();
        int right = k - 1;

        // count first
        int count = 0;
        for(int i = left; i <= right; i++) {
            if (isVowels(s.charAt(i))) {
                count += 1;
            }
        }

        int max = count;
        while(right < len - 1) {
            left += 1;
            right += 1;
            
            if (isVowels(s.charAt(left - 1))) {
                count -= 1;
            }
            if (isVowels(s.charAt(right))) {
                count += 1;
            }

            if (count > max) {
                max = count;
                if (max == k) {
                    break;
                }
            }
        }
        return max;
    }
    public boolean isVowels(char c) {
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
            return true;
        } 
        return false;
    }
}