程式語言 - LeetCode - C++ - 1456. Maximum Number of Vowels in a Substring of Given Length



參考資訊:
https://www.cnblogs.com/cnoodle/p/17375813.html

題目:


解答:

class Solution {
public:
    int maxVowels(string s, int k) {
        int r = 0;
        int cnt = 0;
        vector<char> vows = { 'a', 'e', 'i', 'o', 'u' };

        for (int i = 0; i < k; i++) {
            if (std::find(vows.begin(), vows.end(), s[i]) != vows.end()) {
                cnt += 1;
            }
        }

        r = cnt;
        for (int i = k; i < s.size(); i++) {
            if (std::find(vows.begin(), vows.end(), s[i]) != vows.end()) {
                cnt += 1;
            }

            if (std::find(vows.begin(), vows.end(), s[i - k]) != vows.end()) {
                cnt -= 1;
            }

            if (cnt > r) {
                r = cnt;
            }
        }

        return r;
    }
};