go: add «1456. Maximum Number of Vowels in a Substring of Given Length»

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-08-12 17:15:28 +02:00
parent 4fc9cb0a11
commit e9e304b2aa
Signed by: mfocko
SSH key fingerprint: SHA256:icm0fIOSJUpy5+1x23sfr+hLtF9UhY8VpMC7H4WFJP8

View file

@ -0,0 +1,33 @@
package main
func maxVowels(s string, k int) int {
isVowel := func(c byte) bool {
return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'
}
countFirst := func() int {
count := 0
for i := 0; i < k; i++ {
if isVowel(s[i]) {
count++
}
}
return count
}
count := countFirst()
maxCount := count
for i := k; i < len(s); i++ {
if isVowel(s[i-k]) {
count--
}
if isVowel(s[i]) {
count++
}
maxCount = max(maxCount, count)
}
return maxCount
}