思路:
使用前缀和统计words中当前位置之前的元音字符串个数,遍历queries计算结果,用结尾处的元音字符串个数减去开始处的个数得到结果,压入数组。
源代码:
/**
* @param {string[]} words
* @param {number[][]} queries
* @return {number[]}
*/
function vowelStrings(words, queries) {
const len = words.length;
const vowels = ['a', 'e', 'i', 'o', 'u'];
const preSumVowels = new Array(len + 1).fill(0);
const ans = new Array();
for(let i = 0; i < len; ++i) {
if(vowels.includes(words[i][0]) && vowels.includes(words[i][words[i].length - 1])) {
preSumVowels[i + 1] = preSumVowels[i] + 1;
} else {
preSumVowels[i + 1] = preSumVowels[i];
}
}
for(const query of queries) {
ans.push(preSumVowels[query[1] + 1] - preSumVowels[query[0]]);
}
return ans;
};