Medium
A string is considered beautiful if it satisfies the following conditions:
'a'
, 'e'
, 'i'
, 'o'
, 'u'
) must appear at least once in it.'a'
s before 'e'
s, all 'e'
s before 'i'
s, etc.).For example, strings "aeiou"
and "aaaaaaeiiiioou"
are considered beautiful, but "uaeio"
, "aeoiu"
, and "aaaeeeooo"
are not beautiful.
Given a string word
consisting of English vowels, return the length of the longest beautiful substring of word
. If no such substring exists, return 0
.
A substring is a contiguous sequence of characters in a string.
Example 1:
Input: word = “aeiaaioaaaaeiiiiouuuooaauuaeiu”
Output: 13
Explanation: The longest beautiful substring in word is “aaaaeiiiiouuu” of length 13.
Example 2:
Input: word = “aeeeiiiioooauuuaeiou”
Output: 5
Explanation: The longest beautiful substring in word is “aeiou” of length 5.
Example 3:
Input: word = “a”
Output: 0
Explanation: There is no beautiful substring, so return 0.
Constraints:
1 <= word.length <= 5 * 105
word
consists of characters 'a'
, 'e'
, 'i'
, 'o'
, and 'u'
.class Solution {
fun longestBeautifulSubstring(word: String): Int {
var cnt = 1
var len = 1
var maxLen = 0
for (i in 1 until word.length) {
if (word[i - 1] == word[i]) {
++len
} else if (word[i - 1] < word[i]) {
++len
++cnt
} else {
cnt = 1
len = 1
}
if (cnt == 5) {
maxLen = maxLen.coerceAtLeast(len)
}
}
return maxLen
}
}