难度中等52 收藏 分享 切换为英文 接收动态 反馈
给你字符串 s
和整数 k
。
请返回字符串 s
中长度为 k
的单个子字符串中可能包含的最大元音字母数。
英文中的 **元音字母 **为(a
, e
, i
, o
, u
)。
示例 1:
输入:**s = "abciiidef", k = 3
输出:3
解释:子字符串 "iii" 包含 3 个元音字母。
</pre>
示例 2:
输入:**s = "aeiou", k = 2
输出:2
解释:任意长度为 2 的子字符串都包含 2 个元音字母。
</pre>
示例 3:
输入:**s = "leetcode", k = 3
输出:2
解释:"lee"、"eet" 和 "ode" 都包含 2 个元音字母。
</pre>
示例 4:
输入:**s = "rhythms", k = 4
输出:0
解释:字符串 s 中不含任何元音字母。
</pre>
示例 5:
输入:*s = "tryhard", k = 4
输出:1
</pre>
提示:
1 <= s.length <= 10^5
-
s
由小写英文字母组成 1 <= k <= s.lengt
package com.taotao.letcode.test;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @Author: wangjin
* @CreateTime: 2022-08-21 12:19
* 给你字符串 s 和整数 k 。
* <p>
* 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。
* <p>
* 英文中的 元音字母 为(a, e, i, o, u)。
* <p>
*
* <p>
* 示例 1:
* <p>
* 输入:s = "abciiidef", k = 3
* 输出:3
* 解释:子字符串 "iii" 包含 3 个元音字母。
* <p>
* 来源:力扣(LeetCode)
* 链接:https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length
* 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
*/
public class NumberOfVowels {
public static void main(String[] args) {
String s = "abciiidef";
String letter ="aeiou";
int k = 3;
int max=0;
for (int i=0;i<s.length();i++){
if(i+3 <=s.length()){
int j=0;
//获取截取的数据
String interceptedData=s.substring(i,i+3);
List<String> nameList= Stream.iterate(0, n->++n).limit(interceptedData.length()).map(n->""+interceptedData.charAt(n)).collect(Collectors.toList());
for(String string:nameList){
//判断是否包含原因字母
if(letter.contains(string)){
j++;
}
if(max<j){
max=j;
}
// System.out.println("字符串:"+interceptedData+",长度: "+max);
}
}
}
System.out.println("最大长度是:"+max);
}
}
网友评论