2586. 统计范围内的元音字符串数

给你一个下标从 0 开始的字符串数组 words 和两个整数:left 和 right 。
如果字符串以元音字母开头并以元音字母结尾,那么该字符串就是一个元音字符串 ,其中元音字母是 'a'、'e'、'i'、'o'、'u' 。
返回 words[i] 是元音字符串的数目,其中 i 在闭区间 [left, right] 内。

方法一

HashSet类:不允许有重复元素的集合,无序。

通过HashSet建立一个字符集合包含 aeiou,遍历元音数组中的每一个字符串,将字符串和HashSet字符集合进行比较。

HashSet函数:

add()添加元素,contains()判断字符集是否包含

class Solution {
    public int vowelStrings(String[] words, int left, int right) {
        HashSet <Character> vowels = new HashSet<Character>();
        vowels.add('a');
        vowels.add('e');
        vowels.add('i');
        vowels.add('o');
        vowels.add('u');
        int ans = 0;
        for(int i=left; i <= right; i++){
            String word = words[i];
            if(vowels.contains(word.charAt(0))&&vowels.contains(word.charAt(word.length()-1)))
                ans++;
        }
        return ans;
    }
}

方法二

substring函数,参数截取字符串的对应位置。

String b = a.substring(0,2) 即为截取字符串的第0到第1位(不包含第2位)

class Solution {
    public int vowelStrings(String[] words, int left, int right) {
        String vowels="aeiou";
        int ans = 0;
        for(int i=left; i<=right; i++){ //注意left<=i<=right
            int x = words[i].length();
            String m = words[i].substring(0,1);
            String n = words[i].substring(x-1,x);
            if(vowels.contains(m) && vowels.contains(n))
                ans++;
        }
        return ans;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值