当前位置: 首页 > article >正文

Leetcode 3325. Count Substrings With K-Frequency Characters I

  • Leetcode 3325. Count Substrings With K-Frequency Characters I
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3325. Count Substrings With K-Frequency Characters I

1. 解题思路

这一题思路上就是一个滑动窗口。

我们考察窗口的左边界依次为0到n-1时右边界能够取到的最小值,使之满足至少有一个字符的频次不小于k,此时后续所有的子串都满足条件,显然窗口的有边界同样是单调递增的,因此我们用一个滑动窗口即可完成上述思路。

2. 代码实现

给出python代码实现如下:

class Solution:
    def numberOfSubstrings(self, s: str, k: int) -> int:
        n = len(s)
        cnt = [0 for _ in range(26)]
        i, j = 0, 0
        ans = 0
        while i < n:
            while j < n and max(cnt) < k:
                cnt[ord(s[j]) - ord('a')] += 1
                j += 1
            if max(cnt) >= k:
                ans += n-j+1
            else:
                break
            cnt[ord(s[i]) - ord('a')] -= 1
            i += 1
        return ans

提交代码评测得到:耗时29ms,占用内存16.8MB。


http://www.kler.cn/news/358587.html

相关文章:

  • 【GIT】.gitignore文件的使用
  • Python版本无重复字符的最长子串
  • CSMA/CD协议 监听算法
  • ROS理论与实践学习笔记——5 ROS机器人系统仿真之URDF、Gazebo与Rviz综合应用
  • Caffeine Cache解析(一):接口设计与TinyLFU
  • python如何使用SciPy matplotlib完成数据分析?
  • 【Flutter】基础入门:项目结构
  • spring-cloud-alibaba-nacos-config2023.0.1.*启动打印配置文件内容
  • 机器学习中的朴素贝叶斯
  • 【ChatGPT】如何让 ChatGPT 提供简短、精准的答案
  • 新版vs code + Vue高亮、语法自动补全插件
  • OkEdge边缘计算网关助力数字化工厂管理系统高效部署与维护
  • IntelliJ IDEA 常用快捷键详解与自定义修改方法
  • SoapShell 更新 | 增强免杀版适配冰蝎4.0客户端的WebShell
  • Tailwind css系列教程(二)
  • oracle numtodsinterval
  • ansibie的安装 |Ansible 在CentOS7上批量部署JDK、Tomcat、jenkins和Nginx
  • 028 elasticsearch索引管理-ElasticsearchRestTemplate
  • 水下侧扫声呐图像数据集,沉船,1.13G。声纳数据集 水下声纳数据集 水下图像声纳数据集
  • C#基于SkiaSharp实现印章管理(11)