Rust 力扣 - 1297. 子串的最大出现次数

文章目录

题目描述

题解思路

越短的子串出现的次数越多,我们只需要求某个长度为min_size的子串出现的次数,并且该子串中不重复字符小于等于max_letters的数量

遍历长度长度为min_size的子串,然后将不重复字符小于等于max_letters的子串加入哈希表中计数

然后返回哈希表中满足约束条件的子串的数量最大值

题解代码

rust 复制代码
use std::collections::HashMap;

impl Solution {
    pub fn max_freq(s: String, max_letters: i32, min_size: i32, max_size: i32) -> i32 {
        let cs = s.as_bytes();
        let mut map = HashMap::new();

        let mut win = HashMap::new();

        for i in 0..min_size as usize {
            win.insert(cs[i], i);
        }

        if win.len() <= max_letters as usize {
            map.insert(&s[0..min_size as usize], 1);
        }

        for i in min_size as usize..cs.len() {
            if let Some(start) = win.get(&cs[i - min_size as usize]) {
                if start <= &(i - min_size as usize) {
                    win.remove(&cs[i - min_size as usize]);
                }
            }

            win.insert(cs[i], i);
            if win.len() <= max_letters as usize {
                if let Some(count) = map.get_mut(&s[i - min_size as usize + 1 .. i + 1]) {
                    *count += 1;
                } else {
                    map.insert(&s[i - min_size as usize + 1 .. i + 1], 1);
                }
            }
        }

        let mut ans = 0;

        for (_, v) in &map {
            ans = ans.max(*v);
        }

        return ans;
    }
}

题目链接

https://leetcode.cn/problems/maximum-number-of-occurrences-of-a-substring/

相关推荐
陈天伟教授几秒前
《数据处理和标注技术》课程能力图谱
人工智能·算法
Darling噜啦啦几秒前
# MySQL + Milvus = PostgreSQL?一张表搞定 AI Agent 的长时记忆(附完整代码)
后端·postgresql·orm
用户713874229002 分钟前
在 .NET 中使用 AWS Secrets Manager:Config 与 Client 详解
后端
福大大架构师每日一题2 分钟前
2026-10-16:交替数列的最大元素。用go语言,给定三个整数 n、s、m。现在要构造一个包含 n 个整数的序列,其中第一个数必须等于 s。序列中相邻数字的
后端
yunwei372 分钟前
eBPF 入门实践教程:BPF Token,安全的委托式权限与程序加载
linux·后端·性能优化
LMT_Lanmantech3 分钟前
HyperWorks许可:almutil显示Unit满了,数据到底准不准?
运维·服务器·算法
YSL0701244 分钟前
一文通关-----栈和队列
开发语言·数据结构
136096757235 分钟前
旧 SQL 在新 PG 上能不能跑
后端
SamDeepThinking6 分钟前
配货单发货数为空告警误报治理:写表延迟复核方案
java·后端·架构
知守观7 分钟前
mirrorOf= 把私服请求拦去了公网镜像:本地能跑,CI 上内部包 404 排查
后端·ci/cd·maven