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

Leetcode 340. 至多包含 K 个不同字符的最长子串

1.题目基本信息

1.1.题目描述

给你一个字符串 s 和一个整数 k ,请你找出 至多 包含 k 个 不同 字符的最长子串,并返回该子串的长度。

1.2.题目地址

https://leetcode.cn/problems/longest-substring-with-at-most-k-distinct-characters/description/

2.解题方法

2.1.解题思路

滑动窗口

2.2.解题步骤

第一步,构建维护变量。left,right俩指针维护一个滑动窗口;map_维护滑动窗口中每个字符的最右侧的字符串的索引;currentLength维护当前的不同字符子串的长度

第二步,滑动窗口进行滑动,更新currentLength和maxLength

3.解题代码

python代码

class Solution:# 重点: 双指针+map记录滑动窗口内各字符的最右侧索引# 注意: 区分maxLength和currentLengthdef lengthOfLongestSubstringKDistinct(self, s: str, k: int) -> int:if k==0:return 0length=len(s)# 第一步,构建维护变量。left,right俩指针维护一个滑动窗口;map_维护滑动窗口中每个字符的最右侧的字符串的索引;currentLength维护当前的不同字符子串的长度left,right=0,0map_={}currentLength=0# 第二步,滑动窗口进行滑动,更新currentLength和maxLengthmaxLength=1for i in range(length):map_[s[i]]=iright=iif len(map_)>k:                # 删除最小索引的字符minIndex=min(map_.values())for item in map_.copy().items():if item[1]==minIndex:# 更新滑动窗口左侧指针left=map_[item[0]]+1del map_[item[0]]breakcurrentLength=right-left+1else:currentLength+=1maxLength=max(maxLength,currentLength)return maxLength

4.执行结果

http://www.xdnf.cn/news/734365.html

相关文章:

  • Java并发
  • [特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
  • Elasticsearch的写入流程介绍
  • vscode实时预览编辑markdown
  • 树莓派安装openwrt搭建软路由(ImmortalWrt固件方案)
  • <3>, 常用控件
  • wheelgames
  • C++17新特性 类型推导
  • 虚拟化数据恢复—XenServer虚拟机虚拟磁盘文件丢失的数据恢复案例
  • 集成测试 maestro-我的第一个flow以及第一次云端测试
  • React和原生事件的区别
  • π0-FAST-针对VLA模型的高效动作token化技术-2025.1.16-开源
  • 使用 Fetch + Streams 处理流式响应(Streaming Response)
  • Odoo OWL 框架深度研究(VIP10万字版)
  • 特伦斯 S75 电钢琴:重构演奏美学的极致表达
  • 小黑大语言模型应用探索:langchain智能体构造源码demo搭建1(初步流程)
  • OptiStruct实例:消声器前盖ERP分析(2)RADSND基础理论
  • 深入解析 Redis Cluster 架构与实现(二)
  • 【sa-token】 sa-token非 web 上下文无法获取 HttpServletRequest。
  • 数据结构:导论
  • SpringBatch+Mysql+hanlp简版智能搜索
  • matlab计算转子系统的固有频率、振型、不平衡响应
  • StringBuilder对象的操作
  • cocos creator资源管理器,资源动态加载和释放
  • 基于Qt封装数据库基本增删改查操作,支持多线程,并实现SQLite数据库单例访问
  • 【google 论文】Titans: Learning to Memorize at Test Time
  • 裂缝仪在线监测装置:工程安全领域的“实时守卫者”
  • DrissionPage WebPage模式:动态交互与高效爬取的完美平衡术
  • C# 将HTML文档、HTML字符串转换为图片
  • Window10+ 安装 go环境