leetcode 3306 C++

因为我很多STL的用法不太会,所以直接看了参考答案,通过算至少k个辅音字母子字符串和至少k+1个辅音字母子字符串的个数,然后相减就是恰好k个辅音字母子字符串的个数。

cpp 复制代码
class Solution {
public:
    long long cnt(string word, int k){
        set<char> v = {'a', 'e','i','o','u'};
        long long res = 0 * 1L;
        int n = word.size();
        map<char, int> tmp;
        int f = 0;
        for(int i = 0, j = 0; i < n; i ++) {
            // int j = i;
            while(j < n && (f < k || tmp.size() < v.size())) {
                if(v.count(word[j])) {
                    tmp[word[j]] ++;
                }
                else {
                    f++;
                }
                j ++;
            }
            if(f >= k && tmp.size() == v.size()) res += (n - j + 1);
            if(v.count(word[i])) {
                tmp[word[i]] --;
                if(tmp[word[i]] == 0) tmp.erase(word[i]);
            }
            else {
                f --;
            }

        }
        return res;

    }
    long long countOfSubstrings(string word, int m) {
        return cnt(word, m) - cnt(word, m + 1);

    }
};
相关推荐
长安er8 分钟前
LeetCode 83/237/82 链表删除问题-盒子模型
数据结构·算法·leetcode·链表·力扣
小虎牙00731 分钟前
RSA 的核心原理
算法
重生之后端学习32 分钟前
56. 合并区间
java·数据结构·后端·算法·leetcode·职场和发展
小猪猪屁35 分钟前
顺序表与链表:头插法与尾插法详解
c语言·数据结构·c++
历程里程碑44 分钟前
C++ 5:模板初阶
c语言·开发语言·数据结构·c++·算法
leoufung1 小时前
LeetCode 74. Search a 2D Matrix
数据结构·算法·leetcode
Kiri霧1 小时前
Go数据类型介绍
java·算法·golang
dllmayday2 小时前
Qt/QML + C++ 双向数据绑定(MVVM 模式的几种常用方法(ChatGPT)
开发语言·c++·qt
Mxsoft6192 小时前
AR远程定位偏差救场!某次现场故障,SLAM算法精准对齐设备模型!
算法·ar