🔗 leetcode.com/problems/co…
题目
- 给一个字符串组成的数组 words
- 给一批 query, 统计 l-r 之间,有几个首尾都是元音的字符串
思路
- prefix_sum
- 按顺序遍历 words,判断当前是否为首尾元音字符串,更新 prefix_sum 数组
- 对于每个 query,就是 prefix_sum r+1 - prefix_sum l
代码
class Solution {
public:
vector<int> vowelStrings(vector<string>& words, vector<vector<int>>& queries) {
int sum = 0
unordered_set<char> s = {'a', 'e', 'i', 'o', 'u'}
vector<int> presum
presum.push_back(0)
for (int i = 0
string st = words[i]
if (s.count(st[0]) && s.count(st[st.size() -1])) {
presum.push_back(presum[i] + 1)
} else {
presum.push_back(presum[i])
}
}
vector<int> ans
for (int i = 0
int l = queries[i][0]
int r = queries[i][1]
ans.push_back(presum[r + 1] - presum[l])
}
return ans
}
}