LeetCode //C - 1456. Maximum Number of Vowels in a Substring of Given Length

1456. Maximum Number of Vowels in a Substring of Given Length

Given a string s and an integer k, return the maximum number of vowel letters in any substring of s with length k.
Vowel letters in English are ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’.
 

Example 1:

Input: s = “abciiidef”, k = 3
Output: 3
Explanation: The substring “iii” contains 3 vowel letters.

Example 2:

Input: s = “aeiou”, k = 2
Output: 2
Explanation: Any substring of length 2 contains 2 vowels.

Example 3:

Input: s = “leetcode”, k = 3
Output: 2
Explanation: “lee”, “eet” and “ode” contain 2 vowels.

Constraints:
  • 1 < = s . l e n g t h < = 1 0 5 1 <= s.length <= 10^5 1<=s.length<=105
  • s consists of lowercase English letters.
  • 1 <= k <= s.length

From: LeetCode
Link: 1456. Maximum Number of Vowels in a Substring of Given Length


Solution:

Ideas:
  • s is the input string.
  • k is the length of the substring.
  • isVowel is a helper function to check if a character is a vowel.
  • The function first counts the number of vowels in the first window of size k.
  • Then it iterates through the string, sliding the window one character at a time, updating the vowel count, and keeping track of the maximum vowel count found.
Code:
// Helper function to check if a character is a vowel
bool isVowel(char c) {
   
    return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u';
}

int maxVowels(char *s, int k) {
   
    int maxVowelCount = 0, currentVowelCount = 0;

    // Initial count of vowels in the first window
    for (int i = 0; i < k; ++i) {
   
        if (isVowel(s[i])) {
   
            currentVowelCount++;
        }
    }
    maxVowelCount = currentVowelCount;

    // Slide the window and update counts
    for (int i = k; s[i] != '\0'; ++i) {
   
        if (isVowel(s[i])) {
   
            currentVowelCount++;
        }
        if (isVowel(s[i - k])) {
   
            currentVowelCount--;
        }
        if (currentVowelCount > maxVowelCount) {
   
            maxVowelCount = currentVowelCount;
        }
    }

    return maxVowelCount;
}

相关推荐

  1. 146. LRU 缓存

    2023-12-25 09:50:04       50 阅读
  2. 146. LRU 缓存

    2023-12-25 09:50:04       39 阅读
  3. 146. LRU 缓存

    2023-12-25 09:50:04       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-25 09:50:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-25 09:50:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-25 09:50:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-25 09:50:04       20 阅读

热门阅读

  1. HBase 搭建过程中常见问题

    2023-12-25 09:50:04       42 阅读
  2. sklearn所需要的知识点

    2023-12-25 09:50:04       31 阅读
  3. Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

    2023-12-25 09:50:04       43 阅读