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 * 105word consists of characters 'a', 'e', 'i', 'o', and 'u'.public class Solution {
public int longestBeautifulSubstring(String word) {
int cnt = 1;
int len = 1;
int maxLen = 0;
for (int i = 1; i != word.length(); ++i) {
if (word.charAt(i - 1) == word.charAt(i)) {
++len;
} else if (word.charAt(i - 1) < word.charAt(i)) {
++len;
++cnt;
} else {
cnt = 1;
len = 1;
}
if (cnt == 5) {
maxLen = Math.max(maxLen, len);
}
}
return maxLen;
}
}