LeetCode 1456. Maximum Number of Vowels in a Substring of Given Length Solution in Java, C++, Python & More | Explanation + Code

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

Description

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.length <= 105
  • s consists of lowercase English letters.
  • 1 <= k <= s.length

Solutions

Solution 1: Sliding Window

First, we count the number of vowels in the first k characters, denoted as cnt, and initialize the answer ans as cnt.

Then we start traversing the string from k. For each iteration, we add the current character to the window. If the current character is a vowel, we increment cnt. We remove the first character from the window. If the removed character is a vowel, we decrement cnt. Then, we update the answer ans = max(ans, cnt).

After the traversal, we return the answer.

The time complexity is O(n), where n is the length of the string s. The space complexity is O(1).

PythonJavaC++GoTypeScriptPHP
class Solution: def maxVowels(self, s: str, k: int) -> int: vowels = set("aeiou") ans = cnt = sum(c in vowels for c in s[:k]) for i in range(k, len(s)): cnt += int(s[i] in vowels) - int(s[i - k] in vowels) ans = max(ans, cnt) return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !