第46天(中等题 数据结构)

打卡第四十六天
2道中等题
image

题目:
image

思路:前缀和+哈希表

代码:

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;
    }
};

耗时≈一小时 明天继续

posted @ 2025-12-06 00:21  Wy0518  阅读(5)  评论(0)    收藏  举报