leetcode如何求替换后的最长重复字符
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍了leetcode如何求替换后的最长重复字符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。给你一个仅由大写英文字母组成
千家信息网最后更新 2025年12月02日leetcode如何求替换后的最长重复字符
这篇文章主要介绍了leetcode如何求替换后的最长重复字符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。
注意:
字符串长度 和 k 不会超过 104。
示例 1:
输入:
s = "ABAB", k = 2
输出:
4
解释:
用两个'A'替换为两个'B',反之亦然。
示例 2:
输入:
s = "AABABBA", k = 1
输出:
4
解释:
将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。
子串 "BBBB" 有最长重复字母, 答案为 4。解题思路
1,滑动窗口类题目一般都需要左右两个指针,重点放在理解和优化窗口移动的逻辑
2,注意本题是提换K个字符而不是替换K种
3,显然最大长度=窗口内出现次数最多的字符的次数+K
4,每次移动右指针,更新最大出现次数
5,如果右指针到左指针长度>K+最大出现次数则,移动左指针
func characterReplacement(s string, k int) int {win:=make(map[byte]int)start:=0max:=0maxSame:=0for end:=0;endwin[s[end]]++if win[s[end]]>maxSame{maxSame=win[s[end]]}for end-start+1-maxSame>k{win[s[start]]--start++}fmt.Println("*",start,end,maxSame)if end-start+1>max{max=end-start+1}}return max}
感谢你能够认真阅读完这篇文章,希望小编分享的"leetcode如何求替换后的最长重复字符"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
字符
指针
最长
次数
篇文章
长度
最大
两个
字母
字符串
移动
示例
解释
输入
输出
价值
位置
兴趣
反之亦然
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
敏捷管理软件开发流程
二战风云服务器
数据库出生日期比较年龄
华为和oppo的软件开发
数据库连接显示无法上网
深圳软件开发5年后工资
网络技术与基础试题
软件开发都学啥
服务器风扇声音可以换吗
数据库概论第五版答案第四章答案
武汉互联网科技企业
上海crm软件开发平台
香港的科技互联网
太和县网络安全费用
潮州专业软件开发批发价格
网络安全法对哪些行为处罚
关于大学生网络安全报告
腾飞九霄网络技术有限公司
马云计算机网络安全
广州禾记互联网科技有限公司
徐汇区正规软件开发哪家好
什么样的网络安全性好
济南毕业一年软件开发
网吧服务器如何复制客户
把服务器充爆的游戏视频
垃圾分类软件开发在哪找
数据库学分用什么代替
连云港微生活网络技术有
万能数据库转换工具中文正式版
自己架设服务器列表读取失败