2,1456. 定长子串中元音的最大数目

2022-08-21  本文已影响0人  滔滔逐浪

难度中等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>

提示:

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);
    }
}


上一篇 下一篇

猜你喜欢

热点阅读