第46天(中等题 数据结构)
打卡第四十六天
2道中等题

题目:

思路:前缀和+哈希表
代码:
class Solution {
public:
vector<int> vowelStrings(vector<string>& words, vector<vector<int>>& queries) {
int n = words.size();
auto isVowelString = [](const string& s) -> bool {// 判断一个字符串是否以元音开头和结尾
if (s.empty()){
return false;
}
unordered_set<char> vowels = {'a', 'e', 'i', 'o', 'u'};// 元音集合
return vowels.count(s[0]) && vowels.count(s.back());// 检查首尾字符是否都是元音
};
vector<int> prefix(n + 1, 0);// 构建前缀和数组
for (int i = 0; i < n; i++) {
prefix[i + 1] = prefix[i] + (isVowelString(words[i]) ? 1 : 0);
}
vector<int> result;
for (const auto& query : queries) {
int l = query[0], r = query[1];
int count = prefix[r + 1] - prefix[l];// 使用前缀和计算区间和
result.push_back(count);
}
return result;
}
};
耗时≈一小时 明天继续

浙公网安备 33010602011771号