给你一个下标从 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;
}
}