题目
1839. 所有元音按顺序排布的最长子字符串 - 力扣(LeetCode)
思路
利用滑动窗口的思想,对于每个窗口内的字符串都判断
- 子字符串包含所有五个元音字母。
- 子字符串中的元音字母按照字典序出现
用一个变量 maxLength 记录最长美丽子字符串的长度。
使用滑动窗口,遍历每个字符,并跟踪当前子字符串的元音字母是否满足字典序。
如果元音字母的顺序被打破,或者元音字母不满足条件(比如缺少某些元音),则重新开始。
更新 maxLength,并在找到符合条件的子字符串时更新其长度。
代码
public int longestBeautifulSubstring(String word) {int max = 0;int sumChar = 0;int current = 0;for(int i=0;i<word.length();i++){if(i>0&&word.charAt(i)>=word.charAt(i-1)){current++;if(word.charAt(i)!=word.charAt(i-1)){sumChar++;}}else{sumChar=1;current=1;}if(sumChar==5){max = Math.max(max,current);}}return max;}
结语
最近实习有点忙,都没时间刷题了💔